python - plt.subplots() 中的 sharey ='all' 参数未传递给 df.plot()?

标签 python pandas matplotlib

我有一个 pandas 数据框,我想对其进行切片,并将每个切片绘制在单独的子图中。我想使用 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) 

给出以下情节:
enter image description here

事实上,无论我指定 sharey 是什么 ('all','col', '行'TrueFalse)。我使用 sharey='all' 寻求的结果如下: enter image description here

有人可以解释一下我在这里做错了什么吗?

最佳答案

以下版本只会添加 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 )

关于python - plt.subplots() 中的 sharey ='all' 参数未传递给 df.plot()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50145309/

相关文章:

python - 如何使用 Flask 应用程序访问现有的(SNOWFLAKE)数据库?

python - 在给定字典中的值的情况下创建键列表

python - pandas fillna 在列中包含前几行的累加值(每个 nan 后重置)

python - 使用 Python 绘制庞加莱截面

python - 如何判断我的指数曲线在 SciPy 中的拟合效果如何?

python - 如何获取QSplitter索引和位置

python - 按时间间隔+聚合函数对 Pandas 进行分组

python - 如何在条形图中从一列列表中绘制词频

python - 如何将标签对齐到极坐标条形图的内边缘

python - matplotlib 散点图颜色作为第三个变量的函数