如何用Python强大的matplotlib库绘图
matplotlib库支持超过100种数据可视化的显示效果,其功能十分强大。具体可访问下述网址:
我们一般通过pyplot简单调用使用,引用方法很简单:
一、先看一个简单的例子:
plt.plot 直接加一个列表,则列表值为y轴,x轴自动设置为列表对应元素的索引值(当为两个列表时,前一个列表为横坐标);
plt.ylabel可设置坐标轴名称;
plt.axis为设置横纵坐标范围;
plt.savefig为保存图片到当前目录下,这里的dpi指图的质量,即每英寸像素点的数量为600,默认为png格式;plt.show为显示该图形。
二、绘图区域分割实现多图显示:
plt.subplot(nrows, ncols, plot_number) 用来划分绘图区域并选定某一特定区域,其中nrows和ncols分别为分割区域的行数和列数,plot_number为当前绘图区域(注:该值是按一行一行方式的数来的)。如此便实现了多图显示。
如果绘制图形区域不是规则的划分,需要用到辅助subplot设计的函数subplot2grid() 。其基本理念为:设定网络,选中网络,确定选中行列区域数量,编号从0开始。
plt.subplot2grid(GridSpec, CurSpec, colspan=1, rowspan=1)
其中第一个参数表示区域划分,第二个参数为选定位置,第三第四个参数分别值列和行的延伸。见下例
三、plot函数常用功能:
plt.plot(x, y, format_string, **kwargs) 其中x为x轴数据,为列表或numpy数组;y为y轴数据;format_string为控制曲线格式的字符串,可选;**kwargs表示可以多组放置前三个参数,绘制在一张图中(例如绘制多条曲线,注:此时x不可省略)。
format_string 由颜色字符、风格字符和标记字符组成。
(1)常用颜色字符有:(也可用color='green'设定)
'b' 蓝色 'm'洋红色 'g'绿色 'y'黄色 'r'红色 'k'黑色 'w'白色 '#0080000'RGB某颜色 '0.8'灰度值字符串
(2)常用风格字符有:(也可用linestyle='dashed'设定)
'-'实线 '--'破折线 '-.'点划线 ':'虚线
(3)常用的标记字符有:(也可用marker='o'设定)
'.'点 ','像素(极小点) 'o'实心圈 'v'倒三角 '^'上三角 '>'右三角 '<'左三角 '1'下花三角
'2'上花三角 '3'左花三角 '4'右花三角 's'实心方形 'p'实心五角 '*'星形 'h'竖六边形
'H'横六边形 '+'十字 'x'x标记 'D'菱形 'd'瘦菱形 '|'垂直线
用法如上例所示。
四、pyplot的中文显示:
一般中文是不能够显示在pyplot中的,如果要在图中添加中文可以选择用rcParams将字体进行修改。
rcParams的属性(会改变图中所有的字体):
'font.family'用于显示字体名称
'font.style'字体风格,正常'normal'或斜体'italic'
'font.size'字体大小,整数字号
另一种方法更加实用简单,增加一个fontproperties属性,由于这种方法可局部修改字体,因此更推荐使用此方法。
除了plt.xlabel() , plt.ylabel()还有如下几种文本显示函数
plt.title() 对图形整体增加文本标签; plt.text() 在任意位置增加文本;plt.annotate() 在图形中增加带箭头注释
为了更好理解本节内容,具体见下例:
熟悉LaTeX编写的人不难发现,'$'符号括起来的部分是LaTeX的语法格式,可输入很多常用的数学符号。
plt.text() 前两个参数表示的是输入文本的起始位置,第三个参数为输入内容,最后为格式;
plt.text() 前两个参数表示的是输入文本的起始位置,第三个参数为输入内容,最后为格式;
plt.annotate() 第一个参数为输入内容,第二个参数为箭头指向位置,第三个参数为文本位置,最后为一个字典格式的箭头格式调整参数。
五、常用基础图表函数:
plt.plot()绘制坐标图; plt.boxplot()箱形图; plt.bar()条形图; plt.barh()横向条形图; plt.polar()极坐标图;
plt.pie()饼图; plt.psd()功率谱密度图; plt.specgram()谱图; plt.cohere() X-Y的相关性函数图;
plt.scatter()散点图; plt.step()步阶图; plt.hist()直方图; plt.contour()等值图; plt.vlines()垂直图;
plt.stem()柴火图; plt.plot_date()数据日期;
下面介绍几种常用的图标绘制方法:
(1)饼图