在 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 图中仅隐藏轴标签,而不是整个轴的主要内容,如果未能解决你的问题,请参考以下文章
Python Pandas:如何将数据框列值设置为 X 轴标签