首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matplotlib Ticker

Matplotlib Ticker
EN

Stack Overflow用户
提问于 2017-05-25 18:18:06
回答 1查看 8.4K关注 0票数 4

有人能给我一个如何使用以下tickFormatters的例子吗?文档对我来说信息不多。

ticker.StrMethodFormatter() ticker.IndexFormatter()

例如,我可能会认为

代码语言:javascript
复制
x = np.array([ 316566.962,  294789.545,  490032.382,  681004.044,  753757.024,
            385283.153,  651498.538,  937628.225,  199561.358,  601465.455])
y = np.array([ 208.075,  262.099,  550.066,  633.525,  612.804,  884.785,
            862.219,  349.805,  279.964,  500.612])
money_formatter = tkr.StrMethodFormatter('${:,}')

plt.scatter(x,y)
ax = plt.gca()
fmtr = ticker.StrMethodFormatter('${:,}')
ax.xaxis.set_major_formatter(fmtr)

会将我的勾号设置为美元签名和逗号九月,表示数千个地点

代码语言:javascript
复制
['$300,000', '$400,000', '$500,000', '$600,000', '$700,000', '$800,000', '$900,000']

但是我得到了一个索引错误。

代码语言:javascript
复制
IndexError: tuple index out of range

对于IndexFormatter文档,可以这样说:

从标签列表中设置字符串

不知道这意味着什么,当我尝试使用它时,我的抽搐消失了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-25 19:03:03

实际上,StrMethodFormatter的工作方式是提供一个可以使用format方法格式化的字符串。因此,使用'${:,}'的方法是正确的。

然而,我们从文献资料中学到

用于该值的字段必须标记为x,用于该位置的字段必须标记为pos。

这意味着您需要给字段提供一个实际的标签x。此外,您可能希望将数字格式指定为g,以避免小数点。

代码语言:javascript
复制
fmtr = matplotlib.ticker.StrMethodFormatter('${x:,g}')

IndexFormatter在这里用处不大。正如您所发现的,您需要提供一个标签列表。这些标签用于索引,从0开始。因此,使用此格式化程序将要求x轴从零开始,并在某些整数范围内。

示例:

代码语言:javascript
复制
plt.scatter(range(len(y)),y)
fmtr = matplotlib.ticker.IndexFormatter(list("ABCDEFGHIJ"))
ax.xaxis.set_major_formatter(fmtr)

在这里,滴答放在(0,2,4,6,....),列表(A, C, E, G, I, ...)中的相应字母被用作标签。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44187290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档