You might consider using the object oriented part of matplotlib instead
of the matlab style of doing things. I tend to make my plots a plot()
method of whatever kind of analysis class I've created:
from pylab import figure
class Analysis(object):
def init(self):
self.x = range(10)
self.y = range(10)
def plot(self):
self.f = figure() # create a figure
self.a = self.f.add_subplot(111) # create axes
self.a.set_xlabel('time (s)')
self.a.set_ylabel('value')
self.a.plot(self.x, self.y)
a = Analysis()
a.plot()
Cheers,
Martin
Hans Strotzer wrote:
> Hi
>
> I'm using matplotlib for producing a bar-chart displaying my
> electricity consumption. One thing that really annoys me is
> that generally python code is quite visually appealing, the
> same goes for the code in the matplotlib-examples.
> The code I have produced here is frankly quite ugly
> when it comes to setting all the properties I want.
> Is there a smarter way of doing this, perhaps using dictionaries etc?
> (I have attached the genereated png-file)
>
> cheers
>
> //Fredrik
> --
>
> from parser_el import *
> from pylab import *
>
>
> # Override some matplotlibrc defaults
> # to get some nicer plots
> rc('figure', figsize=(18,8))
> rc('figure.subplot', bottom=0.14)
> rc('figure.subplot', left=0.04)
> rc('figure.subplot', right=0.98)
>
> p = parser_el()
> N = len(p.dates)
> ind = arange(N)
> p1 = bar(ind, p.kwh_avg, color='b', align='center')
>
> # change color of important bars...
> for i in p.info:
> if type(i)==datetime:
> index = p.dates.index(i)
> if index:
> p1[index].set_facecolor('r')
>
> # Set axis, grid properties & use dates as xticks
> title('kWh/Dygn')
> ylabel('kWh')
> axis([-1,N,0,110])
> locs, labels = xticks(ind, p.dates_string)
> setp(labels, 'rotation', '270', 'ha', 'center', fontsize=10,
> family='monospace')
> xgridlines = getp(gca(), 'xgridlines')
> ygridlines = getp(gca(), 'ygridlines')
> setp(ygridlines, 'linestyle', '-')
> setp(xgridlines, 'linestyle', 'None')
> ax = subplot(111)
> ax.yaxis.set_major_locator(MultipleLocator(10)) # Set y-gridlines
> multiples of 10
> grid(True)
>
> text(0,85, p.info_string, bbox=dict(facecolor='darkturquoise', alpha=0.9))
>
> # Store graph as image
> savefig('el', dpi=80, orientation='landscape', format='png')
>
> show()
>
> =
>
>
>
>
> ------------------------------------------------------------------------
>
>
> ------------------------------------------------------------------------
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Matplotlib-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Matplotlib-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users