如何在Python中绘制带有“双对数”轴的散点图?

0 投票
1 回答
32 浏览
提问于 2025-04-14 15:38

这张图来自维基百科,图例说明:

X轴是以log(log)的方式来表示的,也就是说-X的距离是和log(log(X))成比例的,从0开始;Y轴则是以对数的方式来表示的。

那么,如何在Python中重现这张图呢?

这个选项:

fig, ax = plt.subplots()
plt.xscale('log')
ax.scatter(p, mult, facecolor='blue', marker='.', s=10)
plt.show()

并不是同样的效果:

enter image description here

1 个回答

0
import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots()

ticks = [np.log(np.log(10**i)) for i in range(1,7)]
ax.set_xticks(ticks)

labels = [r'$10^ %s$' % k for k in range(1,7)]
ax.set_xticklabels(labels)

plt.tight_layout()
plt.show()

使用10,000个质数和Sage数学工具,结果立刻就出来了:

在这里输入图片描述

撰写回答