python - plt.subplots() 中的 sharey='all' 参数未传递给 df.plot()?
问题描述
我有一个熊猫数据框,我想对其进行切片,并将每个切片绘制在单独的子图中。我想使用sharey='all'
并让 matplotlib 决定一些合理的 y 轴限制,而不必在数据帧中搜索最小值和最大值并添加偏移量。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.DataFrame(np.arange(50).reshape((5,10))).transpose()
fig, axes = plt.subplots(nrows=0,ncols=0, sharey='all', tight_layout=True)
for i in range(1, len(df.columns) + 1):
ax = fig.add_subplot(2,3,i)
iC = df.iloc[:, i-1]
iC.plot(ax=ax)
事实上,无论我指定什么sharey
('all'
、'col'
、'row'
、True
或False
),它都给出了这一点。我寻求使用sharey='all'
的东西是这样的:
有人可以解释一下我在这里做错了什么吗?
解决方案
以下版本只会添加 df 列所需的轴并共享它们的 y 比例:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.DataFrame(np.arange(50).reshape((5,10))).transpose()
fig = plt.figure(tight_layout=True)
ref_ax = None
for i in range(len(df.columns)):
ax = fig.add_subplot(2, 3, i+1, sharey=ref_ax)
ref_ax=ax
iC = df.iloc[:, i]
iC.plot(ax=ax)
plt.show()
此处明确给出的网格布局参数...add_subplot(2, 3, ...
当然可以相对于 计算len(df.columns)
。
推荐阅读
- css - 如何定位动态大小的图像与顶部边框齐平?
- javascript - 如何以现有对象为参考创建新对象
- ios - 如何在 iOS swift 中将 .opus 文件转换为 .mp3/.m4a/.aac?
- makefile - Makefile:包含在循环/循环外部目标
- javascript - _formdataPolyfill2.default 不是当我尝试使用 formdata-polyfill npm 时抛出的构造函数
- microsoft-band - 访问来自 Microsot 波段 2 的原始数据
- javascript - 如何通过循环查看多个元素样式的变化?
- ruby-on-rails - Rails update_all 等效于 assign_attributes
- angular - 将 json 数据转换为 component.ts 中的对象
- python - XOR 神经网络不学习