只显示Pandas盒中的第n个滴答标签

2024-09-27 21:34:56 发布

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

我不熟悉pandas和matplotlib,但不熟悉Python。我有两个问题,一个是主要问题,一个是次要问题。在

主要:
我有一个pandas箱线图,FICO分数在x轴上,利率在y轴上。 我的x轴全乱了,因为FICO分数互相覆盖。 我只想在x轴上显示每4或5个ticklabel,原因如下:

  • 一般来说,它不那么讨厌图表
  • 在这种情况下,它将允许实际读取标签。在

我的代码片段如下:

plt.figure()  
loansmin = pd.read_csv('../datasets/loanf.csv')  
p = loansmin.boxplot('Interest.Rate','FICO.Score')

我将返回值保存在p中,因为我认为我可能需要进一步操作绘图,现在我要做的就是。在

次要:
如何从pandas boxplot访问plot、subplot、axes对象。
^上面的{}是一个matplotlib.axes.AxesSubplot对象。
help(matplotlib.axes.AxesSubplot)给出一条消息:

^{pr2}$

dir(matplotlib.axes)列出了AxesSubplot和{},但没有AxesSubplot。如何更好地理解这个返回的对象?在


Tags: csv对象pandasmatplotlib原因分数fico利率
2条回答

当我进一步研究时,我发现可以通过dir()来探索返回的对象p。 我发现了一长串有用的方法,其中包括set_xticklabels。 做help(p.set_xticklabels)提供了一些神秘但仍然有用的帮助-本质上是建议为ticklabels传递一个字符串列表。在

然后我尝试执行以下操作-在上面代码的最后一行末尾添加set_xticklabels,有效地链接调用。在

plt.figure()  
loansmin = pd.read_csv('../datasets/loanf.csv')  
p=loansmin.boxplot('Interest.Rate','FICO.Score').set_xticklabels(['650','','','','','700'])

这就产生了预期的结果。我怀疑有一种更好的方法,就像matplotlib那样,它允许你显示每一个n'th标签。但为了立即使用,这是有效的,也允许设置标签,因为任何原因,他们不是周期性的,如果你需要的话。在

像往常一样,把问题写清楚有助于我找到答案。如果有人能帮我找到底层的matplotlib对象,那仍然是个悬而未决的问题。在

AxesSubplot(我认为)只是在matplotlib中获取Axes的另一种方法。set_xticklabels()是matplotlib面向对象接口的一部分(在轴上)。因此,如果您使用的是pylab之类的东西,那么您可以使用xticks(ticks, labels),但是在这里,您必须将它分成不同的调用ax.set_xticks(ticks)ax.set_xticklabels(labels)。(其中axAxes对象)。在

假设您只想将勾数设置为650和700。您可以执行以下操作:

ticks = labels = [650, 700]
plt.figure()
loansmin = pd.read_csv('../datasets/loanf.csv')
p=loansmin.boxplot('Interest.Rate','FICO.Score')
p.set_xticks(ticks)
p.set_xticklabels(labels)

类似地,您可以使用set_xlimset_ylim来完成xlim()和{}在plt中的等效操作。在

相关问题 更多 >

    热门问题