【问题标题】:Pandas missing x tick labels [duplicate]熊猫缺少 x 刻度标签 [重复]
【发布时间】:2017-09-20 14:19:45
【问题描述】:

当我将c 添加到熊猫图时,x 刻度标签消失。有谁知道如何添加它们?

import pandas as pd

df = pd.DataFrame(
    {'mean': {0: 10,
              1: 16,
              2: 18,
              3: 22,
              4: 30},
     'size': {0: 103, 1: 2509, 2: 41939, 3: 145997, 4: 143530},
     'value': {0: 1.5, 1: 4.5, 2: 7.5, 3: 10.5, 4: 13.5}}
)

ax = df.plot(kind='scatter', x='value', y='mean', s=60, c='size', cmap='RdYlGn') 

尝试手动添加 x 刻度标签,但仍然无法正常工作。

ax.set_xticks(df['value'])
ax.set_xticklabels(df['value'])

【问题讨论】:

  • ax.get_figure().tight_layout()?
  • 我已经测试了代码,我没有这个问题,你可以显示一个重现错误的代码。
  • paul-h ax.get_figure().tight_layout() 没用..
  • eyllanesc,有趣.. 你能告诉我该怎么做吗?附上 Jupyter Notebook 的截图?
  • 对我有用的快速修复:将“sharex=False”添加到绘图调用中。希望能解释一下为什么会这样。

标签: python pandas matplotlib plot


【解决方案1】:

好的,我认为这是熊猫情节的一个错误。但是,此 SO post 显示了以下解决方法。

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame(
    {'mean': {0: 10,
              1: 16,
              2: 18,
              3: 22,
              4: 30},
     'size': {0: 103, 1: 2509, 2: 41939, 3: 145997, 4: 143530},
     'value': {0: 1.5, 1: 4.5, 2: 7.5, 3: 10.5, 4: 13.5}}
)
fig, ax = plt.subplots()
df.plot(kind='scatter', x='value', y='mean', s=60, c='size', cmap='RdYlGn', ax=ax) 

【讨论】:

  • 它有效 :),但为什么呢?
  • 是的,它有效,但请有人解释一下。