具体可以百度matplotlib官方文档的样例展示。
1、导入包
import matplotlib.pyplot as plt
# 或者以下语句
from matplotlib import pyplot as plt
2、绘图
plt.plot(x, y)
3、设置图片大小
plt.figure(figsize=(20, 15),dpi=80) # figsize是画布尺寸,dpi是像素
4、设置图的坐标与标题
plt.xticks(x_list, xtick_labels, rotation=45)
plt.yticks(y_list)
plt.title("图表标题")
# x_list为刻度列表,xtick_labels是替换的标签列表(须与刻度列表一一对应),如日期等,rotation为旋转角度。举例如下:
x_list = range(0,120)
xtick_labels = [f"5点{i}分" for i in range(60)]+[f"6点{i}分" for i in range(60)]
5、设置中文字体,matplotlib默认不显示中文字体。首先在命令提示符cmd中输入fc-list :lang=zh-cn按回车即可查看电脑支持的字体和字体路径。下面以FangSong字体举例。
# 第一种方式
font = {"family":'FangSong',"weight":'bold',"size":'larger'}
matplotlib.rc("font",**font)
# 第二种方式
matplotlib.rc("font",family:'FangSong',weight:'bold',size:'larger')
# 第三种方式
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname="字体路径")
# 可以添加其他参数,如size,weight,stretch,variant,stytle等,可通过源码查看如何选择设置其他参数。
plt.xticks(x_list, xtick_labels, rotation=45, fontproperties=my_font)
# 第四种方式
plt.reParams['font.sans-serif']=['SimHei'] # 正常显示汉字
plt.reParams['axes.unicode_minus']=Flase # 正常显示负号
6、设置图片网格
plt.grid(alpha=0.4, linestyle='--') # alpha为透明的,范围为0-1
7、添加图例(多条曲线时)
plt.plot(x,y_1,label='图例1')
plt.plot(x,y_2,label='图例2')
plt.legend(prop=my_font, loc=0) # 此处用prop接收字体
'''参数loc表示图例的位置,其参数为:
'best':0; 'upper right':1; 'upper left':2; 'lower left':3; 'lower right':4
'right':5; 'center left':6; 'center right':7; 'lower center':8; 'upper center':9
'center':10 参数值用英文单词和数字皆可。
'''
8、线条设置(颜色、风格、粗细、透明的)
plt.plot(x,y,color='r', linestyle='--', linewidth=5, alpha=0.5)
# color常见参数:r红色;g绿色;b蓝色;k黑色;w白色;c青色;m洋红;y黄色;或者用16进制颜色编码(百度)
# linestyle参数:-实线;--线虚线;-.点画线;:点虚线;''无线条
9、图片保存
plt.savefig('保存路径/图片名称') # 推荐.svg后缀矢量图。
10、绘制散点图
plt.scatter(x,y) # 参数和方式同plt.plot()
11、绘制条形图(横轴离散)
plt.bar(x, y, width=0.2)
plt.barh(x, y, height=0.2) # 横着绘制
# 绘制多个条形图时,只需要将x移动一个width即可。
12、直方图(横轴连续)如图像处理中的灰度直方图
plt.hist(a, num_bins, normed=True) #a为数组,num_bins为组数,即多少个条状。
# normed=True表示频率直方图,等于Flase表示频数直方图
13、显示图像
plt.imshow(img) # 用于接受和处理图像 但无法显示图像(在jupyter notebook中可以展示)
plt.show() # 用于展示图像
# 取消图像坐标与刻度
plt.xticks([]) # 去x坐标刻度
plt.yticks([]) # 去y坐标刻度
plt.axis('off') # 去坐标轴
# 解决显示灰度图片问题
plt.imshow(img, cmap='gray')