Matplotlib 如何在中重新格式化图表的x轴
问题描述
我在matplotlib中有一个简单的图表:
import numpy as np
import matplotlib.pyplot as plt
data = np.random.uniform(-3, 2, 100)
data = np.append(data, [-5, -10, -50, -55])
plt.scatter(range(104), data, marker='o', color='b', label='Data Points')
plt.savefig("example.png")
看起来像这样:
你可以看到值-50和-55扭曲了整个图表。我想改变Y轴的线性,得到这个:
换句话说,Y轴应该有0、-10、-30、-50、-100这样的非线性值。请问我该如何做?
解决方案
为了实现所需的Y轴格式,你可以将y刻度设置为 对数对称刻度 ,然后设置自定义刻度标签:
import numpy as np
import matplotlib.pyplot as plt
data = np.random.uniform(-3, 2, 100)
data = np.append(data, [-5, -10, -50, -55])
plt.scatter(range(104), data, marker='o', color='b', label='Data Points')
plt.yscale('symlog')
# Set custom y-tick labels
plt.yticks([0, -10, -30, -50, -100], ['0', '-10', '-30', '-50', '-100'])
plt.show()