目录

Matplotlib - Python的数据可视化库

  • 超过100种数据可视化效果

  • 由各种可视化类构成,内部结构复杂,受Matlab的启发

  • matplotlib.pyplot 是绘制各类可视化图形的命令子库,相当于一个快捷方式

>>> import matplotlib.pyplot as plt
>>> plt.plot([3,1,2,4,5])
[<matplotlib.lines.Line2D object at 0x7f06d1eacda0>]
>>> plt.ylabel("grade")
<matplotlib.text.Text object at 0x7f06d1edbc88>
>>> plt.savefig("test", dpi=600) #默认png格式
>>> plt.show()
# 此时出现新窗口
# 关闭新窗口后继续继续回到命令行
# 关闭窗口以后, plt就成了空的了

#二维坐标轴,前一个为x坐标,后一个为y坐标
>>> plt.plot([0,2,4,6,8],[3,1,4,5,2])
[<matplotlib.lines.Line2D object at 0x7f06d1d9b940>]
>>> plt.ylabel("grade")
<matplotlib.text.Text object at 0x7f06d2526f28>
#设置x轴起始值为-1,终点为10; y轴起始0,终止6
>>> plt.axis([-1,10,0,6])
[-1, 10, 0, 6]
>>> plt.show()

plt.subplot( nrows, ncols, plot_number)

  • nrows 横轴个数

  • ncols 纵轴个数

  • plot_number 当前画的图在哪个区域

  • 可以通过 plot_number 切换绘图区域

>>> import matplotlib.pyplot as plt
>>> import numpy as np
>> a=np.arange(0.0,5.0,0.02)
>>> a
>>> plt.subplot(2,1,1)
<matplotlib.axes._subplots.AxesSubplot object at 0x7f06cd313908>
>>> plt.plot(a,f(a))
[<matplotlib.lines.Line2D object at 0x7f06d24f8e80>]
>>> plt.subplot(2,1,2)
>>> plt.plot(a, np.cos(2*np.pi*a), 'r--')
[<matplotlib.lines.Line2D object at 0x7f06cfd0aba8>]
>>> plt.show()

plt.plot(x, y, format_string, **kwargs)

  • x - x轴数据,列表或数组,可选

  • y - y轴数据,列表或数组

  • format_string - 控制曲线的格式字符串,可选

  • **kwargs - 第二组或更多的(x,y,format_string),用于同时绘制多条曲线,此时曲线的 x 不能省略

format_string

  • 由颜色字符、风格字符和标记字符组成

  • 不指定时有系统默认,会对不同线进行区分

颜色字符说明颜色字符说明
'b'蓝色'm'洋红色magenta
'g'绿色'y'黄色
'r'红色'k'黑色
'c'青绿色cyan'w'白色
'#008000'RGB某颜色'0.8'灰度值
风格字符说明
'-'实线
'--'破折线
'-.'点划线
':'虚线
"''无线条
标记字符说明标记说明标记说明
'.'点标记'1'下花三角标记'h'竖六边形标记
','像素标记(极小点)'2'上花三角标记'H'横六边形标记
'o'实心圈标记'3'左花三角标记'+'十字标记
'v'倒三角标记'4'右花三角标记'x'x标记
'^'上三角标记's'实心方形标记'D'菱形标记
'>'右三角标记'p'实心五角标记'd'瘦菱形标记
'<'左三角标记'*'星形标记'|'垂直线标记
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> a = np.arange(10)
#绿色圆圈实线,红色x不画线,任意色*号不画线,蓝色折点线
>>> plt.plot(a, a*1.5,'go-', a, a*2.5,'rx', a, a*3.5,'*', a, a*4.5,'b-.')
[<matplotlib.lines.Line2D object at 0x7f1535000940>, <matplotlib.lines.Line2D object at 0x7f1535000b00>, <matplotlib.lines.Line2D object at 0x7f1534f8c4e0>, <matplotlib.lines.Line2D object at 0x7f1534f8ccc0>]
>>> plt.show()
#显示4条曲线