Python之matplotlib基础

Posted 浔阳晓歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之matplotlib基础相关的知识,希望对你有一定的参考价值。

Python之Matplotlib基础

Matplotlib是Python优秀的数据可视化第三方库

下载地址:https://pypi.org/project/matplotlib/#files

---关于如何安装控件,请参照另一篇博文

博文地址:https://www.cnblogs.com/maybaco/p/13336588.html
Matplotlib库的效果可参考
http://matplotlib.org/gallery.html
Matplotlib的使用 由各种可视化类构成,内部结构复杂,受Matlab库启发,Matplotlab.pyplot是绘制种类可视化图形的命令子库,相当于快捷方式。

#  引用库文件
import matplotlib.pyplot as plt

一个小示例

import matplotlib.pyplot as plt
plt.plot([2,3,4,5,1,6])
plt.ylabel("Grade")
plt.ylabel("number")
plt.axis([-1,11,0,7])
plt.savefig(\'test\',dpi=600)#plt.savefig()将输出图形存储为文件,默认为png格式,可以通过dpi修改输出质量
plt.show()

得到结果

绘制多图subplot

plot.subplot(nrows,ncols,plot_number)
在全局绘制区域中创建一个分区体系,并定位到一个子绘图区域
pyplot绘图区域示例

import numpy as np
import matplotlib.pyplot as plt

def f(t):
    return np.exp(-t) * np.cos(2 * np.pi * t)

a = np.arange(0.0, 5.0, 0.02)
plt.subplot(211)
plt.plot(a, f(a))
plt.subplot(2, 1, 2)
plt.plot(a, np.cos(2 * np.pi * a), \'r--\')
plt.savefig(\'test\',dpi=600)
plt.show()

得到结果:

pyplot的plot()函数详解

plt.plot(x,y,format_string,**kwargs)
x:x轴数据,列表或数组,可选
y:y轴数据,列表或数组
format_string: 控制曲线的格式字符串,可迁
**kwargs: 第二组或更多的(x,y,format_string)

注意:当绘制多条曲线时,各条曲线的x不能省略

format_string:控制曲线的格式字符串,可选。由颜色字符、风格字符和标记字符组成

颜色字符说明颜色字符说明
\'b\' blue \'m\' magenta洋红色
\'g\' green \'y\' 黄色
\'r\' red \'k\' 黑色
\'c\' cyan青绿色 \'w\' 白色
\'#008000\' RGB某颜色 \'0.8\' 灰度值字符串
风格字符说明
\'-\' 实线
\'--\' 破折线
\'-.\' 点划线
\':\' 虚线
\' \' 无线条
标记字符说明标记字符说明标记字符说明
\'.\' 点标记 \'1\' 下花三角标记 \'h\' 竖六边形标记
\',\' 像素标记(极小点) \'2\' 上花三角标记 \'H\' 横六边形标记
\'o\' 实心圏标记 \'3\' 左花三角标记 \'+\' 十字形标记
\'v\' 倒三角标记 \'4\' 右花三角标记 \'x\' x标记
\'^\' 上三角标记 \'s\' 实心方形标记 \'D\' 菱形标记
\'>\' 右三角标记 \'p\' 实心五角标记 \'d\' 瘦菱形标记
\'<\' 左三角标记 \'*\' 星形标记 \' \'
**kwargs: 第二组或更多(x,y,format_string)
color: 控制颜色 如color=\'green\'
linestyle:线条控制 如linestyle=\'dashed\'
marker:标记风格,marker=\'o\'
markerfacecolor:标记颜色,markerfacecolor=\'blue\'
markersize:标记尺寸,markersize=20
...

pyplot的中文显示

pyplot并不默认支持中文显示,需要rcParams修改字体实现

全局设置中文字体

import matplotlib
import matplotlib.pyplot as plt 
matplotlib.rcParams[\'font.family\']=\'SimHei\'
plt.plot([3,1,4,5,2])
plt.ylabel(\'纵轴值\')
plt.savefig(\'test\',dpi=600)
plt.show()

结果如下:

rcParams的属性

属性说明
\'font.family\' 用于显示字体的名字
\'font.style\' 字体风格,正常\'normal\'或斜体\'italic\'
\'font.size\' 字体大小,整数字号或者\'large\',\'x-small\'

中文字体的种类

rcParams[\'font.family\']

中文字体说明
\'SimHei\' 中文黑体
\'Kaiti\' 中文楷体
\'LiSu\' 中文隶书
\'FangSong\' 中文仿宋
\'YouYuan\' 中文幼圆
STSong 华文宋体

示例:

import matplotlib
import matplotlib.pyplot as plt 
import numpy as np
matplotlib.rcParams[\'font.family\']=\'STSong\'
matplotlib.rcParams[\'font.size\']=20
a = np.arange(0.0,5.0,0.02)
plt.xlabel(\'纵轴: 振幅\')
plt.ylabel(\'横轴: 时间\')
plt.plot(a,np.cos(2*np.pi*a),\'r--\')
plt.savefig(\'test\',dpi=600)
plt.show()

局部设置中文字体

在有中文输出的地方,增加一个属性:fontproperties

import matplotlib.pyplot as plt 
import numpy as np

a = np.arange(0.0,5.0,0.02)
plt.xlabel(\'纵轴: 振幅\', fontproperties=\'SimHei\',fontsize=20)
plt.ylabel(\'横轴: 时间\', fontproperties=\'SimHei\',fontsize=20)
plt.plot(a,np.cos(2*np.pi*a),\'r--\')
plt.savefig(\'test\',dpi=600)
plt.show()


注意到,如果设置全局字体的话,那么坐标轴的字体也被改变,局部设置中文字体不改变坐标轴的字体。

pyplot的文本显示

pyplot的文本显示函数

函数说明
plt.xlabel() 对x轴增加文本标签
plt.ylabel() 对y轴增加文本标签
plt.title() 对图形本整体增加文本标签
plt.text() 在任意位置增加文本
plt.annotate() 在图形中增加带箭头的注释

text函数示例

import matplotlib.pyplot as plt 
import numpy as np
a = np.arange(0.0,5.0,0.02)
plt.xlabel(\'纵轴: 振幅\', fontproperties=\'SimHei\', fontsize=20, color = \'green\')
plt.ylabel(\'横轴: 时间\', fontproperties=\'SimHei\', fontsize=20)
plt.title(r\'正弦波实例$y=cos(2\\pi x)$\',fontproperties=\'SimHei\',fontsize=25)
plt.text(2,1,r\'$\\mu=100$\',fontsize=15)
plt.plot(a,np.cos(2*np.pi*a),\'r--\')
plt.savefig(\'test\',dpi=600)
plt.show()

annotate函数示例

import matplotlib.pyplot as plt 
import numpy as np
a = np.arange(0.0,5.0,0.02)
plt.plot(a,np.cos(2*np.pi*a),\'r--\')
plt.xlabel(\'纵轴: 振幅\', fontproperties=\'SimHei\', fontsize=20, color = \'green\')
plt.ylabel(\'横轴: 时间\', fontproperties=\'SimHei\', fontsize=20)
plt.title(r\'正弦波实例$y=cos(2\\pi x)$\',fontproperties=\'SimHei\',fontsize=25)
plt.annotate(r\'$\\mu=100$\',xy=(2,1),xytext=(3,1.5),
	arrowprops=dict(facecolor=\'black\',shrink=0.1,width=2))
plt.axis([-1,6,-2,2])
plt.grid()
plt.savefig(\'test\',dpi=600)
plt.show()

 

以上是关于Python之matplotlib基础的主要内容,如果未能解决你的问题,请参考以下文章

Python基础之matplotlib框架

谈谈Python实战数据可视化之matplotlib模块(实战篇)

为啥代码片段在 matplotlib 2.0.2 上运行良好,但在 matplotlib 2.1.0 上引发错误

深度学习基础之matplotlib,一文搞定各个示例,建议收藏以后参考

深度学习基础之matplotlib,一文搞定各个示例,建议收藏以后参考

深度学习基础之matplotlib,一文搞定各个示例,建议收藏以后参考