当前位置: 首页 > 面试题库 >

matplotlib将xticks设置为列,将标签设置为对应的索引

史宸
2023-03-14
问题内容

对于matlpotlib来说我还很陌生,我发现刻度线定位器和标签令人困惑,所以请多多包涵。我发誓我已经搜寻了几个小时。

我有一个这样的数据框“框架”(相关列):

dayofweek   sla
weekday         
Mon     1   0.889734
Tue     2   0.895131
Wed     3   0.879747
Thu     4   0.935000
Fri     5   0.967742
Sat     6   0.852941
Sun     7   1.000000

其中,工作日名称是索引,而工作日编号是一列。此框架中没有日期时间html" target="_blank">对象。

我把这个变成了一个数字。

fig=plt.figure(figsize=(7,5))    
ax=plt.subplot(111)

我需要将x轴用作数值,因为我想稍后添加一个散点图,这对于字符串值是不可能的。

x_=frame.dayofweek.values
anbar=ax.bar(x_,y_an,width=0.8,color=an_c,label='angekommen')

这样可以 xticks是“
dayofweek”

所以基本上我希望我的xticks是“ dayofweek”列,而它们的标签是对应的索引。现在,如果我通过手动设置set_xticklabels

ax.set_xticklabels(frame.index)

标签从轴上的位置0开始。

在此处输入图片说明

我可以通过重新排列标签列表来解决此问题,但是应该有一种“正确”的方式来使用“定位器”或“格式化程序”,但是(请参阅上文)这对我来说很令人困惑。有人可以指出我如何使标签与其索引相对应吗?


问题答案:

直接的解决方案是不仅设置xticklabel,还设置刻度线:

ax.set_xticks(frame.dayofweek.values)
ax.set_xticklabels(frame.index)

使用FixedLocator和FixedFormatter可以完成相同的操作,

ax.xaxis.set_major_locator(matplotlib.ticker.FixedLocator(frame.dayofweek.values))
ax.xaxis.set_major_formatter(matplotlib.ticker.FixedFormatter(frame.index))

但对于此简单任务而言似乎完全没有必要。



 类似资料:
  • 问题内容: 我有一个JComboBox,其中的项目是查询的结果。该组合显示了来自查询的所有类别名称,对吗?好的,可以。现在,我需要为每个项目赋予一个值,该值就是产品的ID。 到目前为止,这是我得到的: 正如您在代码中看到的那样,每个项目的“标签”都是它的名称。现在,如何设置每个项目的ID,以便以后进行操作? 谢谢,并尝试轻松回答,我正尽最大努力尝试获取Java东西!哈! 问题答案: 默认情况下使用

  • 我有一个JComboBox,其中项目是查询的结果。组合显示了从查询中获取的所有类别名称,对吗?好的,它起作用了。现在我需要给每个项目一个值,这将是产品的ID。 这是我到目前为止得到的: 正如您在代码中看到的,每个项目的“标签”都是它的名称。现在,如何设置每个项目的ID,以便我可以操作之后? 谢谢,试着轻松回答,我很难得到这个Java的东西!哈!

  • 刻度指的是轴上数据点的标记,Matplotlib 能够自动的在 x 、y 轴上绘制出刻度。这一功能的实现得益于 Matplotlib 内置的刻度定位器和格式化器(两个内建类)。在大多数情况下,这两个内建类完全能够满足我们的绘图需求,但是在某些情况下,刻度标签或刻度也需要满足特定的要求,比如将刻度设置为“英文数字形式”或者“大写阿拉伯数字”,此时就需要对它们重新设置。 xticks() 和 ytic

  • 问题内容: 我该如何修改它如何在contenteditable元素(div)中设置caret(cursor)位置?使其接受数字索引和元素,并将光标位置设置为该索引? 例如:如果我有以下段落: 我打电话给: 光标将移动到索引3,如下所示: 我有这个,但是没有运气: 问题答案: 这是从HTML中选择后持久保留范围对象的更改而来的一个答案。请记住,这在几个方面都不是完美的(就像使用相同方法的MaxArt

  • 我有一个JComboBox,其中的项是查询的结果。组合框显示从查询中获取的所有类别名称,对吗?好的,它起作用了。现在我需要给每个项目一个值,即产品的ID。 这是我目前得到的信息: 正如您在代码中看到的,每个项目的“标签”都是它的名称。现在,如何设置每个项目的ID,以便我可以操作之后?

  • 那我试试这个 但是我有 如何设置xlabel和ylabel,然后将新图像另存为文件?