【问题标题】:matplotlib scatterplot x axis labelsmatplotlib 散点图 x 轴标签
【发布时间】:2017-08-24 14:21:26
【问题描述】:

当我在 matplotlib 的散点图中添加 c 选项时,x 轴标签消失。这是一个例子:https://github.com/Kornel/scatterplot-matplotlib/blob/master/Scatter%20plot%20x%20axis%20labels.ipynb(欢迎拉取请求:))

这是与笔记本中相同的示例:

import pandas as pd
import matplotlib.pyplot as plt


test_df = pd.DataFrame({
        "X": [1, 2, 3, 4],
        "Y": [5, 4, 2, 1],
        "C": [1, 2, 3, 4]
    })

现在比较结果:

test_df.plot(kind="scatter", x="X", y="Y", s=50);

收件人:

test_df.plot(kind="scatter", x="X", y="Y", c="C");

x 轴标签在哪里?这是我缺少的功能吗?

熊猫版本:0.18.1 Matplotlib:1.5.3 Python:3.5.2

感谢您的帮助, 内核

编辑:@Kewl 指出的解决方案是调用 plt.subplots 并指定轴:

fig, ax = plt.subplots()
test_df.plot(kind="scatter", x="X", y="Y", s=50, c="C", cmap="plasma", ax=ax);

给予

附:看起来像一个 jupyter 问题,在没有 jupyter notebook 的情况下调用标签很好

【问题讨论】:

  • 只是说我试图从从 anaconda 控制台启动的 python shell 运行相同的代码,我能够看到“X”标签。 pd.__version__:0.19.2 matplotlib.__version__:2.0.0 Python 3.6.0。也许它只是这些软件包中的一个或多个的版本?如果我有时间(或者如果我在你身边),我会尝试使用新的 conda(或虚拟)环境对其进行测试,看看这是否能解决问题......
  • 另外:您是否尝试过仅将代码作为笔记本运行(使用 Jupyter)?如果是这样,我会在没有笔记本的情况下对其进行测试,看看是否不仅仅是“X”轴没有显示的问题,因为它在笔记本框架中没有足够的空间(只是猜测)。
  • @umbe1987 你是对的!它在 jupyter 之外工作。我试过调用tight_layout,但这并没有改变任何东西:/对我来说看起来像一个jupyter错误。
  • 对我来说,使用conda-forge 频道安装熊猫是有效的。 conda install -c conda-forge pandas

标签: python pandas matplotlib


【解决方案1】:

你可以这样做。

plt.scatter(x="X", y="Y", c=df.color)
plt.xlabel("X axis label")
plt.ylabel("Y axis label")

【讨论】:

    【解决方案2】:

    如果您使用 Anaconda,安装 pandasconda-forge 频道可以解决问题。

    conda install -c conda-forge pandas
    

    【讨论】:

      【解决方案3】:

      在我看来,这看起来像是熊猫在密谋的一个奇怪错误!这是一种解决方法:

      fig, ax = plt.subplots()
      df.plot(kind='scatter',x='X', y='Y', c='C', ax=ax)
      ax.set_xlabel("X")
      plt.show()
      

      这将为您提供您期望的图表:

      【讨论】:

      • 非常感谢!你知道什么好笑吗? set_xlabel 是多余的。调用 plt.subplots 就可以了。请查看更新的笔记本。
      猜你喜欢
      • 2021-11-16
      • 2021-06-01
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多