绘制数据系列的柱状图
import numpy as np import matplotlib.pyplot as plt import os #导入os库 x=np.linspace(0, 10, 30)#产生0-10之间30个元素的等差数列 noise=np.random.randn(30)#产生30个标准正态分布的元素 y1=x**2+2*noise #//产生叠加噪声的数据系列1 y2=x**1+2*noise #产生叠加噪声的数据系列2 y3=x**1.5+2*noise #产生叠加噪声的数据系列3\n" plt.rcParams['font.sans-serif'] = 'SimHei'#设置字体为SimHei显示中文\n", plt.rc('font', size=14)#设置图中字号大小\n", plt.figure(figsize=(6,4))#设置画布\n", plt.bar(x,y1,width = 0.2)#绘制柱状图\n", plt.title('柱状图')#添加标题\n", plt.xlabel('x')#添加横轴标签\n", plt.ylabel('y1')#添加y轴名称\n", path='D:\\my_python\\ch3\\output\\' if not os.path.exists(path): os.makedirs(path) plt.savefig(path+'scatter.jpg')#保存图片 plt.savefig(path+'plot.jpg')#保存图片\n", plt.show()
绘制数据系列和的柱状图
import numpy as np import matplotlib.pyplot as plt import os #导入os库 x=np.linspace(0, 10, 30)#产生0-10之间30个元素的等差数列 noise=np.random.randn(30)#产生30个标准正态分布的元素 y1=x**2+2*noise #//产生叠加噪声的数据系列1 y2=x**1+2*noise #产生叠加噪声的数据系列2 y3=x**1.5+2*noise #产生叠加噪声的数据系列3\n" plt.rcParams['font.sans-serif'] = 'SimHei'#设置字体为SimHei显示中文\n", plt.rc('font', size=14)#设置图中字号大小\n", plt.figure(figsize=(6,4))#设置画布\n", plt.bar([0,1,2],[np.sum(y1),np.sum(y2),np.sum(y3)],width = 0.5)#绘制柱状图\n", plt.title('柱状图')#添加标题\n", labels=['y1的和','y2的和','y3的和'] plt.xlabel('数据系列y')#添加横轴标签\n", plt.ylabel('数据系列y的和')#添加纵轴标签\n", plt.xticks(range(3),labels)#横轴刻度与标签对准\n", path='D:\\my_python\\ch3\\output\\' if not os.path.exists(path): os.makedirs(path) plt.savefig(path+'scatter.jpg')#保存图片 plt.savefig(path+'plot.jpg')#保存图片\n", plt.show()
plt.figure(figsize=(6,4))#设置画布\n", plt.bar(x,y1,width = 0.2)#绘制柱状图\n", plt.bar(x,y2,width = 0.2,bottom=y1)#绘制柱状图 这里将堆叠到y1上方。 plt.title('堆叠柱状图')#添加标题\n", plt.xlabel('x')#添加横轴标签\n", plt.ylabel('y')#添加纵轴标签\n", plt.legend(['y1','y2'])
plt.figure(figsize=(6,4))#设置画布\n", plt.bar(x,y1,width = 0.2)#绘制柱状图\n", plt.bar(x,y2,width = 0.2,bottom=y1)#绘制柱状图\n", plt.bar(x,y3,width = 0.2,bottom=y1+y2,color='red')#绘制柱状图\n", plt.title('堆叠柱状图')#添加标题\n", plt.xlabel('x')#添加横轴标签\n", plt.ylabel('y')#添加纵轴标签\n", plt.legend(['y1','y2','y3'])
bar()方法的bottom参数指定了数据的“底”,通过将一个数据系列指定为另一个数据系列的bottom,可以将两个或多个数据系列的柱状图堆叠起来。
绘制水平柱状图
plt.figure(figsize=(6,4))#设置画布\n", plt.barh(x, width=y1, height=0.2) plt.title('水平柱状图')#添加标题\n", plt.xlabel('y')#添加纵轴标签\n", plt.ylabel('x')#添加横轴标签"
绘制水平堆叠柱状图
plt.figure(figsize=(6,4))#设置画布\n", plt.barh(x, width=y1, height=0.2) plt.barh(x, width=y2, height=0.2,left=y1) plt.barh(x, width=y3, height=0.2,left=y1+y2,color='red') plt.title('水平柱状图')#添加标题\n", plt.xlabel('y')#添加纵轴标签\n", plt.ylabel('x')#添加横轴标签\n",
与bar 方法类似, barch 方法使用left 参数设置数据左侧的起点,将一个数据设置为另一个数据系列的left参数,可以将2个或多个数据系列盐水瓶方向堆叠起来。