首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >matplotlib.pyplot蜱的困惑行为([])

问matplotlib.pyplot蜱的困惑行为([])
EN

Stack Overflow用户
提问于 2020-03-30 00:33:48
回答 1查看 72关注 0票数 2

我想要抑制pyplot自动生成的滴答标签,以支持我自己的标签。当我在下面的Python中使用pyplot.yticks([])抑制y-蜱标签时,

代码语言:javascript
复制
from matplotlib import pyplot as plt

num_points = 10
data       = [i for i in range(num_points)]
fig        = plt.figure()
ax         = plt.subplot(1,1,1)

ax.plot(data)
ax.set_yscale('log')
plt.yticks([])
plt.text(1, 7, '10 data points')

plt.show()

pyplot按需要抑制y-蜱标签:

​

​

但是当num_points小于10时,pyplot忽略pyplot.yticks([]),插入其自动生成的滴答标签,并生成

​

​

当我通过plt.yticks(values_list, labels_list)提供一个值列表和标签列表来提供自己的滴答标签时,pyplot.yticks()接受我的标签,但它仍然绘制自动生成的滴答标签,覆盖我的标签。

如果我通过省略ax.set_yscale('log')语句将九点日志图更改为线性图,pyplot就不会自动绘制生成滴答标签:

​

​

这个问题似乎与低于10分的原状土地有关。如何抑制在日志图中自动生成的短于10分的滴答标签?

EN

回答 1

Stack Overflow用户

发布于 2020-03-30 07:07:33

在使用日志轴时,默认情况下不仅显示主要的滴答,而且还显示次要的滴答。你可以把它们分开关掉。请注意,当只有很少的主要蜱,小滴答也可以得到一个标签。

另外,请注意,在日志规模上设置零值通常不是一个好主意。由于log(0)是负无穷大,matplotlib必须对所需的滴答距离做一些脆弱的猜测。

代码语言:javascript
复制
from matplotlib import pyplot as plt
from matplotlib import ticker

num_points = 10
data       = [i+2 for i in range(num_points)]
fig        = plt.figure()
ax         = plt.subplot(1,1,1)

ax.plot(data)
ax.set_yscale('log')
ax.text(1, 7, '10 data points')
ax.yaxis.set_major_locator(ticker.NullLocator())
ax.yaxis.set_minor_locator(ticker.NullLocator())

plt.show()

这张图片显示的是蓝色的主要蜱虫和红色的小蜱。在这个例子中,只有一个主要的滴答,一些小滴答也有标签。

​

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

https://stackoverflow.com/questions/60922524

复制
相关文章

相似问题

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