python下matplotlib、pandas的横型条状图作图逐步深入分析
1.横型条形图
2.代码1:
import matplotlib.pyplot as plt import matplotlib from matplotlib import font_manager # 第一步,导出通用字体设置 #第二步,引出字体模块和位置 my_font = font_manager.FontProperties(fname="hwxk.ttf",size=20) #如果不设置,就是默认大小,这里的15=1500,6=600,大小为1500和600像素 plt.figure(figsize=(15, 6)) #5组数据的比较 price = [39.5, 39.9, 45.4, 38.9, 33.34] plat=['亚马逊', '当当网', '中国图书网', '京东', '天猫'] """ 绘制水平条形图方法barh 参数一:y轴 参数二:x轴 """ plt.barh(range(5), price, height=0.7, color='pink', alpha=0.8) # 从下往上画 plt.yticks(range(5), plat,fontproperties=my_font) plt.xlim(30,47) #30~47,各1 #第三步,增加u和fontproperties=my_font,可加u可不加u plt.xlabel(u"价格",fontproperties=my_font) plt.ylabel(u'公司',fontproperties=my_font) plt.title(u"不同平台图书价格",fontproperties=my_font) #这是设置柱状条上面的数值,来自price for x, y in enumerate(price): plt.text(y + 0.2, x - 0.1, '%s' % y) plt.show()
3.图1
4.修改一下,代码2:
import matplotlib.pyplot as plt import matplotlib from matplotlib import font_manager # 第一步,导出通用字体设置 #第二步,引出字体模块和位置 my_font = font_manager.FontProperties(fname="hwxk.ttf",size=20) #如果不设置,就是默认大小,这里的15=1500,6=600,大小为1500和600像素 plt.figure(figsize=(15, 6)) #5组数据的比较 price = [39.5, 39.9, 45.4, 38.9, 33.4,37.3,38.7,37.9,41.5,39.9,39.2,42.3] plat=['1月', '2月', '3月', '4月', '5月','6月','7月','8月','9月','10月','11月','12月'] """ 绘制水平条形图方法barh 参数一:y轴 参数二:x轴 """ plt.barh(range(12), price, height=0.7, color='lightgreen', alpha=0.8) # 从下往上画 plt.yticks(range(12), plat,fontproperties=my_font) plt.xlim(30,47) #30~47,各1 #第三步,增加u和fontproperties=my_font,可加u可不加u plt.xlabel(u"系数",fontproperties=my_font) plt.ylabel(u'月份',fontproperties=my_font) plt.title(u"年度月份系数表",fontproperties=my_font) #这是设置柱状条上面的数值,来自price for x, y in enumerate(price): plt.text(y + 0.2, x - 0.1, '%s' % y) plt.show()
5.图2
6.数据图3
7.代码3:
import matplotlib.pyplot as plt import matplotlib import pandas as pd import xlrd #读取excel from matplotlib import font_manager # 第一步,导出通用字体设置 #第二步,引出字体模块和位置 my_font = font_manager.FontProperties(fname="hwxk.ttf",size=20) #如果不设置,就是默认大小,这里的15=1500,6=600,大小为1500和600像素 plt.figure(figsize=(15, 6)) df=pd.read_excel('22.xls') datax=df['month'] #读取月份列,x轴数据 datay=df['data'] #读取数据列,y轴数据 plt.barh(range(12), datay, height=0.7, color='lightgreen', alpha=0.8) # 从下往上画 plt.yticks(range(12), datax,fontproperties=my_font) plt.xlim(30,47) #30~47,各1 #第三步,增加u和fontproperties=my_font,可加u可不加u plt.xlabel(u"系数",fontproperties=my_font) plt.ylabel(u'月份',fontproperties=my_font) plt.title(u"年度月份系数表",fontproperties=my_font) #这是设置柱状条上面的数值,来自price for x, y in enumerate(datay): plt.text(y + 0.2, x - 0.1, '%s' % y) plt.show()
8.图4