在 Pandas 图中仅隐藏轴标签,而不是整个轴

Posted

技术标签:

【中文标题】在 Pandas 图中仅隐藏轴标签,而不是整个轴【英文标题】:Hide axis label only, not entire axis, in Pandas plot 【发布时间】:2017-04-03 23:43:59 【问题描述】:

我可以在 Pandas 图中清除 xlabel 的文本:

plt.xlabel("")

相反,是否可以隐藏标签?

可能类似于.xaxis.label.set_visible(False)

【问题讨论】:

好吧,这里是文档:pandas.pydata.org/pandas-docs/stable/generated/…这听起来像你要找的东西:sharex : boolean, default True if ax is None else False In case subplots=True, share x axis and set some x axis labels to invisible; defaults to True if ax is None otherwise False if an ax is passed in; Be aware, that passing in both an ax and sharex=True will alter all x axis labels for all axis in a figure! sharey : boolean, default False In case subplots=True, share y axis and set some y axis labels to invisible 【参考方案1】:

From the Pandas docs -

Series 和 DataFrame 上的 plot 方法只是 plt.plot() 的简单包装:

这意味着你可以用 matplolib 做的任何事情,你都可以用 Pandas DataFrame plot 做。

pyplot has an axis() 允许您设置轴属性的方法。在调用plt.show() 之前调用plt.axis('off') 将关闭两个 轴。

df.plot()
plt.axis('off')
plt.show()
plt.close()

要控制单个轴,您需要通过绘图的Axes 设置其属性。对于 x 轴 - (pyplot.axes().get_xaxis().....)

df.plot()
ax1 = plt.axes()
x_axis = ax1.axes.get_xaxis()
x_axis.set_visible(False)
plt.show()
plt.close()

类似控制一个轴标签,获取标签并关闭。

df.plot()
ax1 = plt.axes()
x_axis = ax1.axes.get_xaxis()
x_axis.set_label_text('foo')
x_label = x_axis.get_label()
##print isinstance(x_label, matplotlib.artist.Artist)
x_label.set_visible(False)
plt.show()
plt.close()

你也可以像这样到达x轴

ax1 = plt.axes()
x_axis = ax1.xaxis
x_axis.set_label_text('foo')
x_axis.label.set_visible(False)

或者这个

ax1 = plt.axes()
ax1.xaxis.set_label_text('foo')
ax1.xaxis.label.set_visible(False)

DataFrame.plot

返回一个matplotlib.axes.Axes 或它们的numpy.ndarray

这样您就可以在调用它时获取它/它们。

axs = df.plot()

.set_visible() 是一个Artist 方法。坐标轴和它们的标签是艺术家,所以它们有Artist methods/attributes 和their own。有很多方法可以自定义你的情节。有时您可以通过浏览Gallery 和Examples 找到您想要的功能

【讨论】:

以上是关于在 Pandas 图中仅隐藏轴标签,而不是整个轴的主要内容,如果未能解决你的问题,请参考以下文章

如何在三元图中的刻度上而不是 x 和 y 轴上进行缩放

情节:如何在带有刻面的情节表达图中隐藏轴标题?

ggplot折线图中的多行x轴标签

Python Pandas:如何将数据框列值设置为 X 轴标签

matplotlib/pandas 中是不是有参数将直方图的 Y 轴作为百分比?

抑制树状图中的叶子标签