很多时候人类是对数据无感的,至少70%的功能都是为视觉服务的(不一定科学啊),总而言之,将表格形式不直观的数据制成直观的图表是很有必要的。文不如表,表不如图。今天就来学习一下如何用pandas将表格中的数据制成图表呢。
测试数据源
把上回的数据留下name和score
绘制图表
import pandas as pd
import matplotlib.pyplot as plt # 制图的库
excel_path = r'E://temp/raw.xlsx'
# 读取一个excel文件为DataFrame,并设置索引为id这一列
df = pd.read_excel(excel_path)
# 设置x轴和y轴
df.plot.bar(x='name', y='score')
# 展示图表方法
plt.show()
图表的顺序和DataFrame中 的顺序是一样的,可以先给表格排序再生成表格。
plot.bat()
方法还可以添加一个color属性,设置条状图的颜色plot.bar(x='name', y='score', color='orange')
紧凑型布局
如果x轴上名字过长的话,会被图表挤掉显示不全,可以设置为紧凑型布局全部显示出来。
# 设置紧凑型布局
plt.tight_layout()
# 展示图表方法
plt.show()
设置标题
使用pyplot制图
上面是使用pandas制的图表,如果使用pyplot制作图表的话比它更加灵活。
import pandas as pd
import matplotlib.pyplot as plt # 制图的库
excel_path = r'E://temp/raw.xlsx'
# 读取一个excel文件为DataFrame,并设置索引为id这一列
df = pd.read_excel(excel_path)
# 排序
df.sort_values(by='score', inplace=True,ascending=False)
# 设置x轴和y轴, 颜色(color), 标题(title)
# df.plot.bar(x='name', y='score', color='orange', title='student score table')
# 设置x轴y轴
plt.bar(df.name,df.score)
# 设置x轴字体方向
plt.xticks(rotation='90')
# 设置轴名
plt.xlabel('name')
plt.ylabel('score')
# 设置标题
plt.title('student socre table', fontsize=16)
# 设置紧凑型布局
plt.tight_layout()
# 展示图表方法
plt.show()