Matplotlib官网上有上百个例子,但是基本上都没有注释。下面我把例子代码贴上,然后说明一下语句的意思。
""" Simple demo of a horizontal bar chart. """ import matplotlib.pyplot as plt plt.rcdefaults() import numpy as np import matplotlib.pyplot as plt # Example data people = (‘Tom‘, ‘Dick‘, ‘Harry‘, ‘Slim‘, ‘Jim‘) y_pos = np.arange(len(people)) performance = 3 + 10 * np.random.rand(len(people)) error = np.random.rand(len(people)) plt.barh(y_pos, performance, xerr=error, align=‘center‘, alpha=0.4) plt.yticks(y_pos, people) plt.xlabel(‘Performance‘) plt.title(‘How fast do you want to go today?‘) plt.show()
这是一个绘制条形图的例子,我们依次来看各个函数的意义。
第5行rcdefaults():重置rc所有的默认参数。相当于初始化,不加这句也应该没有事。
第11行:建立一个长度为5的元祖。
第12-14行:就是一个生成列表或生成随机列表的函数,跟python的random和list的用法差别不是很大。
第16行barh():生成一个水平的条形图。这个函数的声明具体如下:matplotlib.pyplot.
barh
(bottom, width, height=0.8, left=None, hold=None, **kwargs)。条形图的大小由bottom,width,height,left四个参数决定,边界分别是(left, left+width, bottom, bottom+heigth)。还有一些其余参数,这里只贴出官方文档,就不详述了:
color : scalar or array-like, optional——the colors of the bars
edgecolor : scalar or array-like, optional——the colors of the bar edges
linewidth : scalar or array-like, optional, default: None——width of bar edge(s). If None, use default linewidth; If 0, don’t draw edges.
tick_label : string or array-like, optional, default: None——the tick labels of the bars
xerr : scalar or array-like, optional, default: None——if not None, will be used to generate errorbar(s) on the bar chart
yerr : scalar or array-like, optional, default: None——if not None, will be used to generate errorbar(s) on the bar chart
ecolor : scalar or array-like, optional, default: None——specifies the color of errorbar(s)
capsize : scalar, optional——determines the length in points of the error bar caps default: None, which will take the value from the errorbar.capsize rcParam.
error_kw :dictionary of kwargs to be passed to errorbar method. ecolor and capsize may be specified here rather than as independent kwargs.
align : [‘edge’ | ‘center’], optional, default: ‘edge’——If edge, aligns bars by their left edges (for vertical bars) and by their bottom edges (for horizontal bars). If center, interpret the left argument as the coordinates of the centers of the bars.
log : boolean, optional, default: False——If true, sets the axis to be log scale
根据上面的文档可以看出第16行是要生成一个底为ypos,宽为performance。xerr会生成一个水平的线,应该是表示误差(猜的)。align表示的条状图的位置,等于center说明要居中。alpha是可选的kwargs参数,表示的是透明度。kwargs参数具体可参考地址:http://matplotlib.org/1.5.0/api/pyplot_api.html#matplotlib.pyplot.barh。
第17行yticks():设置y轴各项的命名和位置。
第18行xlable(): 设置x轴的轴命名。
第19行title():设置该图的标题。
最后一行是显示,最终的结果如下图:
图1