本博客介绍如何使用 matplotlib 绘制简单的图形,并介绍保存图片的方法。
matplotlib 可以绘制出很高级,很复杂的图形,本篇博客不做介绍,可以查看官方文档,写的很清楚,这里仅对部分使用频率比较高的图形做介绍
一、绘制折线图
1.示例代码:
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-2*np.pi,2*np.pi,400)
siny=np.sin(x)
cosy=np.cos(x)
plt.plot(x,siny,color="red",label="sin(x)")
plt.plot(x,cosy,color="blue",label="cos(x)",linestyle="--")
plt.xlabel("输入数据 x")
plt.ylabel("sin(x) 或者 cos(x)")
plt.title("三角函数图")
plt.legend()
plt.show()
2.输出图片:
3.函数和参数
- plot()函数:用于绘制折线图。
参数如下:- x:横轴数据,必选
- y:纵轴数据,必选
- color:线条颜色,可选。支持16进制颜色,例如: “#0eff00”,另外还支持 red,blue,black等颜色单词。
- label:线条代表的含义,与 legend() 函数一起使用,起到图例的作用。
- linestyle:线条样式,默认是直线(图中是曲线,因为我点比较密集,所以就看不出来是折线图了)。除此之外还可以有多种样式,读者可以填入 “:”,"–","-." 等看看样式效果。
- xlabel(),ylabel()函数:用于标注x轴和 y 轴,使图像更加易于理解。
- title()函数:用于给图片添加标题,使得图片易于理解。
- legend()函数:用于给线条加上注释,使得图像利于理解。
- show()函数:用于最终展示图像。
二、绘制散点图
1.代码示例
import matplotlib.pyplot as plt
import numpy as np
x=np.random.normal(0,1,size=10000)
y=np.random.normal(0,1,size=10000)
plt.scatter(x,y,color="blue",marker="o",alpha=0.1,label="二维正太分布的点")
plt.title("二维正态分布散点图")
plt.xlabel("正态分布 x")
plt.ylabel("正太分布 y")
plt.legend()
plt.savefig(fname="scatter.png",figsize=[10,10])
plt.show()
2.输出图片
2.函数和参数
- scatter()函数:用于绘制散点图像。
参数和plot 的大部分参数一致。- alpha:设置透明度,值的范围为 0-1。
- marker:用来设置点的样式,“o” 表示圆点,"+" 表示 + 点,“x” 表示 x点,例子如下:
import matplotlib.pyplot as plt
import sklearn.datasets as datasets
iris=datasets.load_iris()
x=iris.data
y=iris.target
plt.scatter(x[y==0][:,0],x[y==0][:,2],marker="o",label="第一类鸢尾花")
plt.scatter(x[y==1][:,0],x[y==1][:,2],marker="x",label="第二类鸢尾花")
plt.scatter(x[y==2][:,0],x[y==2][:,2],marker="+",label="第三类鸢尾花")
plt.title("sklearn 鸢尾花数据集可视化")
plt.xlabel("特征一 X")
plt.ylabel("特征二 Y")
plt.legend()
plt.savefig(fname="scatter.png",figsize=[10,10])
plt.show()
图像如图所示:
三、保存图片
1.代码示例:
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-2*np.pi,2*np.pi,400)
siny=np.sin(x)
cosy=np.cos(x)
plt.plot(x,siny,color="red",label="sin(x)")
plt.plot(x,cosy,color="blue",label="cos(x)",linestyle="--")
plt.xlabel("输入数据 x")
plt.ylabel("sin(x) 或者 cos(x)")
plt.title("三角函数图")
plt.legend()
plt.savefig(fname="pic.png",figsize=[10,10])
plt.show()
2.函数和参数
- savefig()函数:用于保存图像。
参数如下:- fname:保存的图片文件的名称,必选。
- figsize:保存图像的大小,单位为英寸,必选。
四、故障问题
不少人表示 matplotlib 不能正常显示中文,其实需要做一下配置,配置方法请参考:https://blog.csdn.net/qq_38863413/article/details/102662573