matplotlib
import matplotlib.pyplot as plt
import numpy as np
#建一个figure对象
fig = plt.figure()
#数据
arr = np.random.randn(100)
#通过add_subplot来分隔figure,在figure的不同位置上作图
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax4 = fig.add_subplot(2,2,4)
#绘图
ax2.plot(arr)
ax3.plot(arr)
ax1.plot(arr)
#展现
plt.show()
图的种类
-
直方图hist
arr = np.random.randn(100) plt.plot(arr,bins=20,color='c',alpha=0.5) plt.show()
-
散点图scatter
arr1 = np.random.randn(100) arr2 = np.random.randn(100) plt.scatter(arr1, arr2) plt.show()
-
柱形图bar
x = np.arange(10) y1, y2 = np.random.randint(10, 50, size = (2, 10)) # 创建一个 8 * 5大小的图,指定每个点的分辨率是100 (默认是80) # 最终图像大小是: 8*100 * 5*100 = 800 * 500 fig = plt.figure(figsize = (8, 5), dpi = 100) ax = plt.subplot(1,1,1) # 宽度偏移量 width = 0.25 # x 表示柱子所在的横坐标位置, y1 表示纵坐标位置,width表示柱子的宽度(默认是0.8 英寸),color 指定黄色 ax.bar(x, y1, width, color = 'y', alpha = 0.5) # x + width 表示基于原先位置增加 width偏移量(刚好是y1柱子的宽度), y2 表示纵坐标位置,color 指定红色 ax.bar(x + width, y2, width, color='r', alpha = 0.5) # 指定 x轴标记的位置 ax.set_xticks(x + width / 2) ax.set_xticklabels(['a','b','c','d','e','f','g','h','i','j']) plt.savefig("bar.png") plt.show()
-
imshow:具体看文档
subplots()
# 创建subplots(),包含 fig对象 和 所有subplot数组 fig, subplot_arr = plt.subplots(2,2)
颜色、标记和线形
plt.plot(np.random.randint(10, 50, 20), color = "red", marker = "v", linestyle= "dashdot") plt.plot(np.random.randint(10, 50, 20), "rv-.")
刻度、标签、图例
fig, ax = plt.subplots(1) #设置刻度范围 ax.set_ylim([0, 1000]) #设置x轴显示的刻度值 ax.set_yticks(range(0, 1000, 200)) #设置y轴显示的刻度值,十二个月的英文简写 ax.set_xticklabels(['Jan', 'Feb','Mar','Apr','May','Jun','Jul','Aug', 'Sep', 'Oct', 'Nov','Dec']) #设置x轴的标签 ax.set_ylabel("Money") #设置y轴的标签 ax.set_xlabel("Month") #设置整个绘图的title ax.set_title("Annual Statement") #绘图 ax.plot(np.random.randint(300, 880, 12), label = "huangmenji", color='r') ax.plot(np.random.randint(300, 800, 12), label = "kaoroubanfan") ax.plot(np.random.randint(300, 800, 12), label = "huangqiaoshaobing") #显示图例 ax.legend() #保存图片 plt.savefig("eat.png") #显示绘图结果 plt.show()
网友评论