使用pandas以及matplotlib画出带有表格的折线图

本文介绍如何使用Python及Matplotlib库绘制带有表格数据的统计图表,并详细讲解了设置中文显示、调整坐标轴格式等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在研究如何画出带有表格数据的统计图,特此做个总结。

1. 明确目的

我们最终需要画出下图:
在这里插入图片描述
通过图片可以看到,该图中的折线图特点如下:

  • 带有表格数据,且在下方;
  • 图中有中文显示;
  • 不含纵坐标,且横轴起点在0;
  • 纵坐标不含刻度线,且范围设定为(-3.0,6.0)带小数点一位展示;
  • 四周不含边界线;
  • 折线图有颜色和点的形状设定;
  • 图例在表格的index上(这点暂时未能实现,如果有会的小伙伴,烦请告知,不胜感谢!)

2.导入模块

import pandas as pd
# 画图模块
import matplotlib.pyplot as plt 
# 导入可以设置坐标带小数点显示工具
import matplotlib.ticker as mtick

3.显示中文设置

# 设置字体
plt.rcParams['font.family'] = 'SimHei'
#设置正常显示字符
plt.rcParams['axes.unicode_minus'] = False

SimHei是黑体,也可以选择自己喜欢的字体

4.读取数据或者创建数据

我这里是自己手敲的

data = pd.DataFrame([[2.0, 1.8, 0.9, 0.1, 1.0,0.3, 0.7, 1.3, 1.6, 1.9, 1.7,1.5, 1.2],
                     [0.3, 0.5, -0.3, -0.7, 0.8, 1.0, 1.0, -0.6, -0.3, -0.2, -0.2, 0.4, -0.1]],
                    columns=['2020年8月','9月','10月','11月', '12月','2021年1月','2月','3月', '4月','5月','6月'
                             ,'7月', '8月'], index=['同比','环比'])

5.开始画图

fig, ax = plt.subplots(1, 1, figsize=(7, 6.5))

data = data.T
# 隐藏x轴坐标
ax.axes.xaxis.set_visible(False)

ax.tick_params(left=False)  # 隐藏刻度线

# 设置边界线
ax.spines['right'].set_color('none')
ax.spines['left'].set_color('none')
ax.spines['top'].set_color('none')
ax.spines['bottom'].set_position(('data', 0))
ax.spines['bottom'].set_color('b')

# 设置y坐标的范围
plt.ylim(-3.0, 6.0)

# 设置y轴范围带小数点
ax.yaxis.set_major_formatter(mtick.FormatStrFormatter('%.1f'))

color_map = {
    '同比': 'ro-',
    '环比': 'bd-'
}

# 画图
data.plot(table=True, ax=ax, style=color_map, markersize=8)
# plt.legend()

plt.show()

效果图如下:
在这里插入图片描述
当然这个效果一般,暂时不能把表格中的字体放大,如果有正在研究的小伙伴,欢迎交流~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值