【问题标题】:Plotting DataFrame x,y,z (Pivot-Table) - Switch axis绘制 DataFrame x,y,z (Pivot-Table) - 切换轴
【发布时间】:2021-07-17 17:15:49
【问题描述】:

我想将以下 DataFrame df 绘制为线条。所以我不必上传文件,我在这里创建了一个示例数组。零仅替换为 NaN,因此它们不会出现在绘图中(图 1 - 绘图)。不幸的是,使用注释掉的命令更改表什么也没做。情节保持不变。

剧情:

我想交换 x 和 y 轴以及交换列的顺序。最后应该如图 2 所示。

结果:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = np.array([[1.984527906,    2.954823982,    3.929672499,    4.959261398,    5.99837202],
[1.990381781,   2.929568097,    3.95951958, 5.033245035,    5.989265035],
[1.957703504,   2.903082068,    3.940650489, 5.03420226,    6.099707906],
[2.000831255,   2.938274126,    4.000250298, 5.05252714,    6.057832594],
[1.967406661,   2.904963886,    4.101361781, 5.210597762,   6.073879772],
[1.974263791,   2.971977283,    4.159008097, 5.22840781, 6.074537953],
[2.028137225,3.163653014, 5.037366853, 0 ,0],
[2.034031388,3.242129474, 5.031475083, 0 ,0],
[0,0, 5.031525226, 0 ,0],
[0,0, 5.033628193, 0 ,0]])

df = pd.DataFrame(df, index=None).replace(0, np.NaN)

## Reshaping of the df wasn't successful.
# df = df[::-1][df.columns.tolist()[::-1]]
# df.columns = np.arange(0,df.shape[1],1)
# print(df)

fig, ax = plt.subplots(1,1)
df.plot(ax=ax)

【问题讨论】:

    标签: python pandas dataframe matplotlib pivot-table


    【解决方案1】:

    在 Matplotlib 中交换 X 和 Y 变量

    您似乎想在此处更改因变量和自变量。这是绘制数据的一种非典型方式。通常,这样的事情将通过数据透视表或数据帧转置来完成。但是由于您使用的是 x_axis 的连续变量,这使得它有点困难。我认为对于这个用例,直接使用 matplotlib 绘图会更容易。以下是如何实施此策略的示例。

    我还按要求颠倒了绘图顺序。

    fig, ax = plt.subplots(figsize=(10,6))
    
    for col in df.columns[::-1]:
        ax.plot(df.iloc[:, col], df.index, label=col)
    
    #style chart
    [ax.spines[s].set_visible(False) for s in ['top', 'right']]
    ax.grid(axis='y', dashes=(8,3), color='gray', alpha = 0.7)
    ax.tick_params(axis='both', bottom=False, left=False)
    ax.set_ylim(0,9)
    ax.legend(ncol=5, loc=(0.25,1.025), edgecolor='w')
    

    【讨论】:

      猜你喜欢
      • 2021-10-04
      • 1970-01-01
      • 2018-04-22
      • 1970-01-01
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 2011-04-28
      • 1970-01-01
      相关资源
      最近更新 更多