数据表
地区 | 图书 | 百货 | 食品 | 销售额 |
北京 | 300 | 410 | 338 | 1048 |
天津 | 258 | 405 | 342 | 1005 |
上海 | 420 | 586 | 335 | 1341 |
广州 | 220 | 474 | 344 | 1038 |
折线图
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_excel("D://datas.xls")
x = df["地区"]
y1 = df["图书"]
y2 = df["百货"]
y3 = df["食品"]
#格式设置
plt.rcParams['font.sans-serif'] = ['SimHei']#解决中文乱码
plt.rcParams['xtick.direction'] = 'out' #x轴的刻度线向外显示
plt.rcParams['ytick.direction'] = 'in' #y轴的刻度线向内显示
plt.title("各地区销售额对比",fontsize='18')
plt.grid(axis='y')
plt.ylabel("销售额")
plt.yticks(range(200,700,50))
plt.plot(x,y1,label='图书',color='r',marker='p')
plt.plot(x,y2,label='百货',color='g',marker='.',mfc='r',ms=8,alpha=0.7)
plt.plot(x,y3,label='食品',color='b',linestyle='-.',marker='*')
plt.legend(['图书','百货','食品'])
plt.show()
结果:
柱状图
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_excel("D://datas.xls")
#柱形图数据准备
x = df["地区"]
height = df["销售额"]
#格式设置
plt.rcParams['font.sans-serif'] = ['SimHei']#解决中文乱码
plt.grid(axis='y',which = 'major') #生成虚线网络
plt.xlabel("年份") #x轴标签
plt.ylabel("销售额(万元)") #y轴标签
plt.title("各地区销售额分析") #图表标题
plt.bar(x,height,width=0.5,align="center",color='b',alpha=0.5,bottom=0.8)
#设置每个柱子的文本标签,format(b,',')格式化销售额为千位分隔符格式
for a,b in zip(x,height):
plt.text(a,b,format(b,','), ha="center", va='bottom', fontsize=9, color='b',alpha=0.9)
#图例
plt.legend(['销售额'])
#图形展示
plt.show()
结果: