初识 Matplotlib

MatplotlibPython 数据分析时最基本的绘图库,对于 Matplotlib 我们应该并不陌生,在介绍 Pandas 库的使用时,我们也顺带提到了绘图与 Matplotlib 库。

Pandas - 绘图操作https://www.jianshu.com/p/730b7debaa99

Matplotlib 中基本的绘图操作

下面,我们绘制一条直线:

import matplotlib.pyplot as plt
import numpy as np

%matplotlib inline

plt.plot([1,2,3,4,5],[1,2,3,4,5])

在横坐标和纵坐标添加标签:

plt.plot([1,2,3,4,5],[1,2,3,4,5])
plt.xlabel('X')
plt.ylabel('Y')

当然,允许我们在添加坐标轴标签时,指定标签的字体大小:

plt.plot([1,2,3,4,5],[1,2,3,4,5])
plt.xlabel('X', fontsize=14)
plt.ylabel('Y', fontsize=14)

Matplotlib 绘图时默认使用直线,此外,允许我们指定其它线型,如虚线、点等等。

字符 类型 字符 类型
'-' 实线 '--' 虚线
'-.' 虚点线 ':' 点线
'.' ',' 像素点
'o' 圆点 'v' 下三角点
'^' 上三角点 '<' 左三角点
'>' 右三角点 '1' 下三叉点
'2' 上三叉点 '3' 左三叉点
'4' 右三叉点 's' 正方点
'p' 五角点 '*' 星形点
'h' 六边形点1 'H' 六边形点2
'+' 加号点 'x' 乘号点
'D' 实心菱形点 'd' 瘦菱形点
'_' 横线点
plt.plot([1,2,3,4,5],[1,2,3,4,5],'--')
plt.xlabel('X', fontsize=14)
plt.ylabel('Y', fontsize=14)

指定线条的颜色:

字符 颜色
‘b’ 蓝色,blue
‘g’ 绿色,green
‘r’ 红色,red
‘c’ 青色,cyan
‘m’ 品红,magenta
‘y’ 黄色,yellow
‘k’ 黑色,black
‘w’ 白色,white
plt.plot([1,2,3,4,5],[1,2,3,4,5],'--',color='magenta')
plt.xlabel('X', fontsize=14)
plt.ylabel('Y', fontsize=14)

如果我们同时指定线条和线条的颜色,通常会把表示它们的符号写在一个字符串中即可:

plt.plot([1,2,3,4,5],[1,2,3,4,5],'--r')
plt.xlabel('X', fontsize=14)
plt.ylabel('Y', fontsize=14)

此外,还可以使用 linewidth 参数制定线条宽度:

x = np.linspace(-10,10)
y = np.cos(x)
plt.plot(x,y,color='c',linewidth=2.2)

绘制结果:

绘制图形时,还可以使用 marker 将数据点标记出来,只需要将 marker 指定为标记时使用的符号即可:

plt.plot(x,y,color='c',linestyle=':',marker='o',markerfacecolor='m',markersize=10)

绘制结果:

上述我们在设置绘图细节时,都是在 plot 函数中传入参数的方式实现的。除此之外,我们也可以现将图画出来,然后使用 plt.setp 来设置所会图形的细节。

line = plt.plot(x,y)
plt.setp(line,color='g',linestyle=':',linewidth=2.2,marker='o',markerfacecolor='c',markersize=10)

绘制结果:

子图

在同一个坐标系中绘制多个图:

arr = np.arange(-1,1,0.1)

plt.plot(arr,arr,'r')
plt.plot(arr,arr**2,'m--')
plt.plot(arr,arr**3,'c-.')

也可以在 plot 时直接传入多组数据:

plt.plot(
    arr,arr,'r', 
    arr,arr**2,'m--',
    arr,arr**3,'c-.'
)

如果将上述图形以子图的形式绘制在多个坐标系中,主要用到 plt.subplot 方法:

plt.subplot(221)
plt.plot(arr,arr,'r')

plt.subplot(222)
plt.plot(arr,arr**2,'m--')

plt.subplot(223)
plt.plot(arr, arr**3,'c-.')

不难看出,221 即 2 行 2 列子图集的第一个子图,222 即 2 行 2 列子图集的第二个子图,以此类推。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容