webapp_demo.py
来自「非原创。很好的python例子」· Python 代码 · 共 88 行
PY
88 行
#!/usr/bin/env python# This example shows how to use the agg backend directly to create# images, which may be of use to web application developers who want# full control over their code without using the pylab interface to# manage figures, figure closing etc.## The rc command is used to create per-script default figure# customizations of the rc parameters; see# http://matplotlib.sf.net/.matplotlibrc . You may prefer to set the# rc parameters in the rc file itself. Note that you can keep# directory level default configurations by placing different rc files# in the directory that the script runs in.## I am making no effort here to make a figure that looks good --# rather I am just trying to show the various ways to use matplotlib# to customize your figure using the matplotlib APIimport matplotlibmatplotlib.use('Agg') # force the antigrain backendfrom matplotlib import rcfrom matplotlib.backends.backend_agg import FigureCanvasAggfrom matplotlib.figure import Figurefrom matplotlib.cbook import iterableimport matplotlib.numerix as nx# set some global properties that affect the defaults of all figuresrc('lines', linewidth=2) # thicker plot linesrc('grid', color=0.75, linestyle='-') # solid gray grid linesrc('axes', hold=True, # hold state is on grid=True, facecolor='y') # yellow background, grid onrc('tick', color='r', labelsize=20) # big red ticksdef setapi(o, **kwargs): """ for all key, value pairs in kwargs, and all objects in (possibly) iterable o, look for a method o.set_key and try to call o.set_key(value) if it exists. This is basically a refinition of the pylab interface set command """ if not iterable(o): o = [o] for thiso in o: # iterate over the objects for k,v in kwargs.items(): func = getattr(thiso, 'set_'+k) if func is None: continue func(v)def make_fig(): """ make a figure No need to close figures or clean up since the objects will be destroyed when they go out of scope """ fig = Figure() #ax = fig.add_subplot(111) # add a standard subplot # add an axes at left, bottom, width, height; by making the bottom # at 0.3, we save some extra room for tick labels ax = fig.add_axes([0.2, 0.3, 0.7, 0.6]) line, = ax.plot([1,2,3], 'ro--', markersize=12, markerfacecolor='g') # make a translucent scatter collection x = nx.mlab.rand(100) y = nx.mlab.rand(100) area = nx.pi*(10 * nx.mlab.rand(100))**2 # 0 to 10 point radiuses c = ax.scatter(x,y,area) c.set_alpha(0.5) # add some text decoration ax.set_title('My first image') ax.set_ylabel('Some numbers') ax.set_xticks( (.2,.4,.6,.8) ) labels = ax.set_xticklabels(('Bill', 'Fred', 'Ted', 'Ed')) # To set object properties, you can either iterate over the # objects manually, or define you own set command, as in setapi # above. #setapi(labels, rotation=45, fontsize=12) for l in labels: l.set_rotation(45) l.set_fontsize(12) canvas = FigureCanvasAgg(fig) canvas.print_figure('webapp.png', dpi=150)make_fig()
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?