时间:2022-05-19 08:56:11 | 栏目:C代码 | 点击:次
matplotlib是python从matlab继承的绘图库,可以满足大部分的日常使用,是目前最流行的底层绘图库。
显示中文方面mac和windows根据自己电脑系统选一个即可
import matplotlib.pyplot as plt # 显示中文(mac) from matplotlib.font_manager import FontManager fm = FontManager() mat_fonts = set(f.name for f in fm.ttflist) print(mat_fonts) plt.rcParams['font.sans-serif'] = ['Arial Unicode MS'] #显示中文(windows) from pylab import mpl #以黑体显示中文 mpl.rcParams['font.sans-serif']=[SimHei] #解决保存图像是负号 显示为方块的问题 mpl.rcParams['axes.unicode_minus']=False # 导入numpy 方便下面绘图展示 import numpy as np
和现实世界绘图一样,在matplotlib里绘图我们也需定义画布和画板,其中一个画布里可以存在多个画板。在绘图时首先要指明在哪个画板上绘图。
# 建立一张画布 其中包括2行三列六张画板 fig,axes=plt.subplots(nrows=2,ncols=3,figsize=(20,8)) # data x为测试数据 np.random.seed(100) data=np.random.randn(50) x=np.arange(50) # 在第一个子图上做折线图 axes[0,0].plot(x,data,linestyle='-',color='b',marker='o') # 在第二个子图上做直方图 axes[0,1].hist(data,bins=20,facecolor='c') # 在第三个子图上做垂直条形图同时加上折线 axes[0,2].bar(x,data) axes[0,2].plot(x,data,linestyle='-.',color='r') # 在第四个子图上做水平条形图 axes[1,0].barh(x,data) # 在第五个子图上做饼图 explode为突出显示的部分 explode=[x*0 for x in range(50)] explode[40]=0.1 axes[1,1].pie(data,explode=explode) # 在第六个子图上做散点图 explode为突出显示的部分 axes[1,2].scatter(x,data,c='r',marker='o') plt.show()
import matplotlib.pyplot as plt # 显示中文【mac】 from matplotlib.font_manager import FontManager fm = FontManager() mat_fonts = set(f.name for f in fm.ttflist) print(mat_fonts) plt.rcParams['font.sans-serif'] = ['Arial Unicode MS'] #设置所需数据 age = range(11, 31) jack = [1, 0, 1, 1, 2, 4, 3, 2, 3, 4, 4, 5, 6, 5, 4, 3, 3, 1, 1, 1] tom = [1, 0, 3, 1, 2, 2, 3, 3, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1] # dpi为设置像素大小 fig = plt.figure(figsize=(20, 8), dpi=80) # jack与tom11到30交友记录 plt.plot(age, jack, 'r', label='jack', linestyle='-', linewidth=5, marker='o') plt.plot(age, tom, 'g', label='tom', linestyle='-.', linewidth=5, marker='*') # 设置x轴数据刻度 plt.xticks(age) # 设置x轴数据标签 plt.xlabel("age", fontsize=20) # 设置y轴数据标签 plt.ylabel("numbers", fontsize=20) # 设置图表标题 plt.title("friends made from 11 to 30", fontsize=20) # 设置网格线 plt.grid() # 设置图例位置 plt.legend(loc=0) # 添加水印 plt.text(30, 2, "交友记录", fontsize=200, color='black', ha='right', va='bottom', alpha=0.1) # 添加数据标签 plt.text(23, 6, 'max num', fontsize=20, color='b', verticalalignment='center') #将图保存到当前目录 命名为test.png plt.savefig('test.png') plt.show()