python - 对数转换后生成适当的轴标签
问题描述
我无法弄清楚如何将转换前图的 ytick 标签放入转换后图,但仍保留对数转换。这是我尝试过的代码:
plt.scatter(data=diamonds, x='carat', y='price')
tick_labels = [0, 2500, 5000, 7500, 10000, 12500, 15000, 17500, 20000]
plt.yscale('log')
plt.yticks(tick_labels);
如何使我的 vis 更易于解释?
解决方案
您可以将格式化程序保留为标量代码,同时使用可见标签调整刻度。你可以看到下面的例子。
import matplotlib.ticker
# rest of your code
...
# get the current axes
ax = plt.gca()
# y is log scaled
ax.set_yscale('log')
# visible y labels
tick_labels = [0, 2500, 5000, 7500, 10000, 12500, 15000, 17500, 20000]
# set visible y labels
ax.set_yticks(tick_labels)
# adjust the formatter to be scalar
ax.get_yaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())
推荐阅读
- c++ - 索引字符串时通过空终止符
- symfony - Symfony 3.4.11 索引的默认语言环境不起作用
- android - 如何在 git-ignore 文件 android 中添加 gradle.properties?
- python-3.x - 在 scraper.py 中使用 scrapy 自定义设置
- javascript - 在 node.js express 上使用中间件设置简单服务器时出错
- swift - 在哪里放置 UIAlert?
- php - php echo中使用'@'是什么意思?
- python-3.x - 关于斯派西的词性
- android - CompletableObserver 找不到合适的方法
- java - 将 toString() 方法中的 super 关键字隐式转换为 super.toString() 没有发生