matplotlib是一个在Python中将数据可视化的第三方包,和matlab中的plot指令,和gnuplot类似,都是将数据进行可视化的工具。matplotlib是一个数学绘图库,可以用它来制作折线图和散点图等的图表。
首先导入matplotlib中的pyplot,pyplot中包含了很多画图的函数,和matlab中画图类似,需要以下几个要素:
import matplotlib.pyplot as plt #导入matplotlib
squares = [1, 4, 9, 16, 25] #数据点
plt.plot(squares) #绘制图表
plt.show() #显示图表
#导入matplotlib包
import matplotlib.pyplot as plt
from matplotlib.pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文
#设置数据点
squares = [1, 4, 9, 16, 25]
#设置图表标题
plt.title("计算平方和",fontsize = 24)
#给坐标轴添加标签
plt.xlabel("数值", fontsize = 14)
plt.ylabel("平方和", fontsize = 14)
#设置线条粗细
plt.plot(squares, linewidth = 5)
plt.show()
我们发现4的平方并非是25,所出现的原因如下:我们为plot()提供一系列数字时,它的默认第一个数据点对应的x坐标值为0,但是我们第一个数据点对应的坐标值是1。为了改变这个情况,我们新建一个列表存放x轴的数据。
#导入matplotlib包
import matplotlib.pyplot as plt
from matplotlib.pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文
#设置数据点
input_value = [1, 2, 3, 4, 5]
squares = [1, 4, 9, 16, 25]
#设置图表标题
plt.title("计算平方和",fontsize = 24)
#给坐标轴添加标签
plt.xlabel("数值", fontsize = 14)
plt.ylabel("平方和", fontsize = 14)
#设置线条粗细
plt.plot(input_value, squares, linewidth = 5)
plt.show()
改变plot()中的参数,添加x轴数据,结果如下:
此时52=25是正确的。
绘制散点图的函数是scatter(),对他传递一对x和y坐标,就可以在指定位置绘制一个点。
plt.scatter(3, 9)
plt.show()
思路其实与折线图一样,用两个列表分别存储x和y坐标,再用scatter()把它们绘制出来就可以了
x_value = [1, 2, 3, 4, 5]
y_value = [3, 4, 7, 9, 11]
#s=100表示点的大小
plt.scatter(x_value, y_value, s=100)
plt.show()
有时候需要显示的数据点很多,但我们只需要看一个范围内的数据,我们就可以设置图表的坐标轴取值范围。
#x坐标值从1到1000
x_value = list(range(1,1001))
y_value = [x**2 for x in x_value]
#s表示点的大小
plt.scatter(x_value, y_value, s=40)
#设置每个坐标轴的取值范围
plt.axis([0, 1100, 0, 1100000])
plt.show()
要修改数据点颜色时,在scatter()中传递实参c,c是一个列表,其中包含三个0-1之间的小数值,分别表示红色、绿色和蓝色分量(类似于RGB)
#x坐标值从1到1000
x_value = list(range(1,1001))
y_value = [x**2 for x in x_value]
#s表示点的大小
plt.scatter(x_value, y_value, s=40, edgecolors='none',
c = (0,1,0))
#设置每个坐标轴的取值范围
plt.axis([0, 1100, 0, 1100000])
plt.show()
在数据可视化中,我们可以用较浅的颜色来表示小数值,用较深的颜色来显示较大的值。
plt.scatter(x_value, y_value, s=40, edgecolors='none',
c = y_value , cmap = plt.cm.Blues)
savefig()可以自动将图表保存到文件中,该函数的第一个实参指定要以什么样的文件名保存图表,一般来说这个文件将存储在该代码所在的目录中;第二个实参将图表多余的空白区域裁剪掉。
plt.cla()
plt.close(0)# 关闭图 0
plt.close(‘all’) 关闭所有图