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()
View Code

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()
View Code

8.图4

原文地址:https://www.cnblogs.com/ysysbky/p/12383750.html