python - 使用 Matplotlib 复制 Log10 缩放
问题描述
我正在尝试重新创建一个 y 轴样式如下的图:
但似乎无法弄清楚如何让轴中断和标签按照我想要的方式排列。我目前在我的代码中这样做:
# plot lines
for key, group in grouped:
plt.plot(group.x * 950, np.log10(group.y), label=key)
# plot points
exp_group = exp_data.groupby('Experiment')
for key, group in exp_group:
plt.plot(group.x, np.log10(group.y), label=key, marker='o')
plt.yticks(np.arange(-3, 3), label=10.0**np.arange(-3,3))
plt.show()
解决方案
一个解决方案是使用plt.yticks
:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 1000)
y = np.exp(x) - x**3 + x**2 - x**(1/2)
plt.figure()
plt.semilogy(x, y)
locs, labels = plt.yticks()
print(locs)
print(labels)
lst_10 = [1, 10, 100, 1000, 10000]
plt.yticks(lst_10, lst_10)
plt.title('Different label on y-axis')
plt.figure()
plt.semilogy(x, y)
plt.title('Default label')
plt.show()
该函数plt.yticks
有两个参数,位置和标签。我想要位置 1、10、100、1000、10000 中的标签;我希望标签(位置 1)有一个标签1
,标签(位置 10)有一个标签10
,依此类推。我也曾经plt.semilogy
得到那个半对数轴。
推荐阅读
- javascript - 在 datapower 中将 application/pdf、text/html 数据转换为 multipart/form-data
- python - 如何将多个文本文件读入数组?
- amazon-web-services - 调查 AWS SNS 没有任何副作用?
- ios - 在不使用 react-native-cli 的情况下设置 React Native 项目
- react-native - 标记标注中显示的图像被剪切
- javascript - 为什么不显示:flex; 和 justify-content: center; 将此幻灯片居中?
- postgresql - 如何在 Postgresql 中读取 Word 文档
- swift - NSDocument 选项卡窗口恢复
- c# - WinForm 的 Windows 高 DPI 缩放
- jquery - jQuery,在加载的元素上自动应用函数