说我想在matplotlib中创建一个数字。我想要多个图,其中一些值远远不是其他图。即:
import matplotlib.pyplot as plt
plt.plot([0, 1, 2, 3, 4], [6.4, 6.7, 6.3, 7.5, 6.6])
plt.plot([0, 1, 2, 3, 4], [57.8, 61.7, 57.8, 57.5, 60.5])
plt.plot([0, 1, 2, 3, 4], [54.8, 53.3, 55.0, 55.2, 54.9])
plt.plot([0, 1, 2, 3, 4], [5400.0, 5362.9, 5333.9, 5206.4, 5333.1])
plt.plot([0, 1, 2, 3, 4], [538167.4, 506828.5, 506889.6, 507461.0, 509221.0])
plt.plot([0, 1, 2, 3, 4], [51024218.8, 51006151.4, 50929451.5, 51382173.5, 51204708.1])
plt.savefig('help.png')
这是与上面的行相对应的数字:
但是你会注意到,你甚至无法看到大部分地块(你可以发现2-3个地块)总共6个。这些线路是否有办法出现而没有聚集向上,以便你可以看到每一行?
答案 0 :(得分:1)
我的建议是在y轴上放置一个对数轴,例如:
import matplotlib.pyplot as plt
plt.plot([0, 1, 2, 3, 4], [6.4, 6.7, 6.3, 7.5, 6.6])
plt.plot([0, 1, 2, 3, 4], [57.8, 61.7, 57.8, 57.5, 60.5])
plt.plot([0, 1, 2, 3, 4], [54.8, 53.3, 55.0, 55.2, 54.9])
plt.plot([0, 1, 2, 3, 4], [5400.0, 5362.9, 5333.9, 5206.4, 5333.1])
plt.plot([0, 1, 2, 3, 4], [538167.4, 506828.5, 506889.6, 507461.0, 509221.0])
plt.plot([0, 1, 2, 3, 4], [51024218.8, 51006151.4, 50929451.5, 51382173.5, 51204708.1])
plt.yscale('log')
plt.savefig('help.png')
结果:
答案 1 :(得分:0)
参见Matplotlib常见问题解答:
经常要求左右y轴有两个刻度,这可能是使用twinx()(目前不支持两个以上刻度,尽管它在愿望中列表)。
http://matplotlib.org/faq/howto_faq.html#multiple-y-axis-scales