当Pandas在带有颜色标签的多个子图中创建散点图时,无法设置xlabel

2024-07-02 20:47:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我无法在以下情况下设置绘图的xlabel

  • 我用熊猫做scatter
  • 多个子地块内
  • 并指定c颜色属性列

例如,这很好:我可以看到xlabel

import numpy as np
import pandas as pd
import pylab as plt
plt.ion()

foo = pd.DataFrame(np.random.randn(5, 5), columns='a b c d e'.split())

fig, (ax1, ax2) = plt.subplots(nrows=2, sharex=True)
foo.plot.scatter(x='a', y='b', ax=ax1)
foo.plot.scatter(x='a', y='c', ax=ax2)
ax2.set_xlabel('xxx')  # works

但是,我在下面设置color c字段的地方稍微改变一下,并没有设置xlabel

fig, (ax1, ax2) = plt.subplots(nrows=2, sharex=True)
foo.plot.scatter(x='a', y='b', ax=ax1, c='c')
foo.plot.scatter(x='a', y='c', ax=ax2, c='c')
ax2.set_xlabel('xx')  # NO x label

plt.xlabel也不起作用ax2.get_xlabel()返回我期望的"xx",但它不可见:

no x label

在这种情况下,如何获取xlabel?Pandas Github repo有3000多个未解决的问题,与其将其作为bug归档,不如找一个面向Matplotlib的解决方案来呈现xlabel。(Python 3.8.1、Pandas 1.0.3、Matplotlib 3.2.0。)

编辑:从数字列名移动到文本列名,因为这会造成混乱


Tags: importfooplotasnpfig情况plt
1条回答
网友
1楼 · 发布于 2024-07-02 20:47:00

由于某种原因,xlabel的可见性被设置为False,要绕过它,您只需执行以下操作

fig, (ax1, ax2) = plt.subplots(nrows=2, sharex=True)
foo.plot.scatter(x='a', y='b', ax=ax1, c='c')
foo.plot.scatter(x='a', y='c', ax=ax2, c='c')
ax2.set_xlabel('xxx')
ax2.xaxis.get_label().set_visible(True)

这会给你

enter image description here

相关问题 更多 >