首页 > 解决方案 > 对数转换后生成适当的轴标签

问题描述

变换前的散点图是这样的: 在此处输入图像描述

对数转换后: 在此处输入图像描述

我无法弄清楚如何将转换前图的 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 更易于解释?

标签: pythonmatplotlibdata-visualization

解决方案


您可以将格式化程序保留为标量代码,同时使用可见标签调整刻度。你可以看到下面的例子。

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())

推荐阅读