python - 如何在单独的数字上绘制 Pandas Dataframe 列?
问题描述
我尝试采用一个有 57 列的 Pandas 数据框,并将它们绘制在一个条形图上,每个图有 3 列。原因是数据的变化和列的长度使得在许多图中很难看到数据。每个子图绘制多列不是一个选项,因此每个图都必须在输出大小处可见。鉴于我发现每个图 3 个子图看起来最好的数据。这是我绘制数据框的脚本:
fig, ax = plt.subplots(nrows=len(df.columns), ncols=1, sharex=True, sharey=True)
yscale = np.ceil(df.abs().select_dtypes(include=[np.number]).values.max())
plt.yscale('symlog')
plt.ylim(-yscale, yscale)
t = list(df.columns.values)
n = 0
for i in df:
df['positive'] = df[i] > 0
df[i].plot.bar(ax=ax[n], rot=0, width=1.0, legend=False, position=0, color=df.positive.map({True: 'g', False: 'r'}))
ax[n].set_title(t[n])
ax[n].axhline(y=0, linewidth=1, color='k')
ax[n].tick_params(which='major', axis='x', length=2)
ax[n].tick_params(which='major', axis='y', length=6)
n += 1
plt.tight_layout()
plt.show()
将数据帧拆分为几个较小的数据帧最简单吗?我唯一担心的是每个数据帧会有不同数量的列和不同的样本。
解决方案
推荐阅读
- php - 如何使用私钥解密字符串
- python - 在 conda 构建期间导出环境 (yml) 文件
- r - 如何从 irr 输出生成 r-markdown 的汇总表(flextable)?
- powershell - 如何使 Powershell 安装模块命令静音?
- java - 将对象转换为 T 类型的类
- c++ - Windows 可执行文件向前和向后兼容吗?
- php - 为什么我尝试登录时没有生成 remember_token(Laravel 8)
- javascript - 是什么导致子页面中的浏览器刷新时出现 XML 错误?
- python - 列表理解以更改具有不同值的众多元素
- javascript - 在 React/D3 中使用工具提示渲染地图