【问题标题】:scale x-coordinates for pandas multiple scatter plotpandas 多散点图的缩放 x 坐标
【发布时间】:2018-02-11 12:13:25
【问题描述】:

我使用this 答案中的配方创建了一个散点图,其中我的数据框的一列作为 y,其他几列作为不同的 x。该答案的相关代码是:

ax1 = df.plot(kind='scatter', x='a', y='b', color='r')    
ax2 = df.plot(kind='scatter', x='c', y='d', color='g', ax=ax1)    
ax3 = df.plot(kind='scatter', x='e', y='f', color='b', ax=ax1)

问题是,我的看起来像这样:

您是否可以在此绘图命令中添加一些优雅而简单的东西,以便每个 x 列的数据都将被缩放以占据整个轴?我不在乎变量下面是否不再有刻度,只想直观地比较每个变量的 y 变化情况。

【问题讨论】:

  • 谢谢,我目前正在查看this 一个,并认为我可能需要创建一个新的数据框,其中重新调整了几列而不是尝试让 plot 命令来执行它..

标签: python pandas plot


【解决方案1】:

IIUC,你可以使用twiny

df = pd.DataFrame({'a':np.random.randint(1,10,20),
               'b':np.random.randint(1,500,20),
               'c':np.random.randint(20,50,20),
               'd':np.random.randint(1,500,20),
               'e':np.random.randint(20,50,20),
               'f':np.random.randint(1,500,20)})

ax2 = df.plot(kind='scatter', x='c', y='d', color='g')    
ax1 = ax2.twiny()
_ = df.plot(kind='scatter', x='a', y='b', color='r',ax=ax1)
_ = df.plot(kind='scatter', x='e', y='f', color='b', ax=ax2)

输出:

【讨论】:

  • 谢谢 没听说过,现在正在测试
  • 基本上,您正在创建辅助 x 轴,因此您在主 x 轴上绘制一些数据,在辅助 a 轴上绘制其他数据。注意顶部轴与底部“正常”x 轴的比例。
  • 我的数据实际上有第四个 x 变量,你上面的模式可以继续包含另一行吗?
  • 是的,我可以在两个尺度上绘制所有四个。只需选择要在哪些轴上绘制每个 x。 ax=ax1 或 ax=ax2。
  • 谢谢,它基本上确实有效,因为它缩放了一些坐标,但不确定是否可以哄它一次缩放它们,学到了一些新东西,将在数据帧上使用 MinMaxScaler 进行一些实验更多..
猜你喜欢
  • 2018-03-03
  • 2022-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-28
  • 1970-01-01
  • 2019-12-07
  • 1970-01-01
相关资源
最近更新 更多