上一篇文章我们认识了绘图区,以及如何调整坐标轴刻度线、边线等,相信大家对画图已经有了初步的了解。那么就给带领大家使用pandas库读取Excel,绘制一个完整的图形。
附上一篇文章链接:Python绘图基础:认识绘图区+subplot创建子图
Excel名称:data_01.xlsx
读者可以自行编辑数据
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel(r"D:\pycharm\pycharm_projects\data\data_01.xlsx", sheet_name=0)
# r"文件路径"
# sheet_name:表示要读取工作表名称。一个Excel中可能有多个sheet,默认第一个sheet_name=0
更多pd.read_excel参数
print(df)
输出下面图形,就代表成功读取文件:
ax.bar(x, y, color="k", edgecolor="k", width=0.3, tick_label=x0)
x: 表示x坐标,数据类型为int或float类型,
height: 表示柱状图的高度,也就是y坐标值,数据类型为int或float类型,
width: 表示柱状图的宽度,取值在0~1之间
color: 条形图的颜色
edgecolor:条形图边框颜色
tick_label:条形图刻度标签
更多bar函数参数
x0 = df["国家"]
# 将"国家"这一列转化为列表的形式赋值给x0
# x0 = ["中国","美国","印度","俄罗斯","巴西","印度尼西亚","阿根廷","法国","乌克兰","加拿大"]
y = df["粮食产量"]
# 同样将"粮食产量"这一列转化为列表的形式赋值给y
# y = [68258,57109,31471,13327,11923,11251,7931,6555,6173,5702]
完整代码如下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 解决中文乱码问题
fig, ax = plt.subplots(figsize=(10, 5))
# 读取Excel文件
df = pd.read_excel(r"D:\pycharm\pycharm_projects\data\data_01.xlsx", sheet_name=0)
x0 = df["国家"]
x = np.arange(10) # 生成 0~9 十个数,为bar函数提供x轴坐标
y = df["粮食产量"]
ax.bar(x, y, color="k", edgecolor="k", width=0.3, tick_label=x0)
# 上、右边线不显示
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
# 只显示y轴网格线
ax.grid(axis="y", c="k", linestyle="-")
# 设置y轴的范围为 0~80000
ax.set_ylim(0, 80000)
# 图名称
ax.set_title("2021年世界各国粮食产量前10强(万吨)", fontsize=14)
# x轴刻度线不显示
ax.tick_params(axis="x", bottom=False)
plt.show()
输出结果如下: