我经常要在黑白打印机上打印图表,如果我想在同一图表上显示不同的数据集,matplotlib使用的默认不同颜色对我没有帮助。
有没有办法改变matplotlib默认值以循环一系列不同的虚线变化,如技术出版物中常见的那样,而不是通过不同的彩色线循环?
我非常感谢你的帮助。
答案 0 :(得分:2)
您可以使用itertools模块在线条样式上循环
import matplotlib.pyplot as plt
import itertools
# put all the linestyles you want in the list below (non exhaustive here)
style=itertools.cycle(["-","--","-.",":",".","h","H"])
# assuming xseries and yseries previously created (each one is a list of lists)
for x,y in zip(xseries,yseries):
plt.plot(x,y,"b"+style.next())
plt.show()
答案 1 :(得分:1)
Matplotlib文档有一个很好的改变线条形状的例子:
http://matplotlib.org/users/pyplot_tutorial.html#controlling-line-properties
构建一个能够从循环内容中的列表中返回或产生其中一个值的函数并不是一件非常困难。
来自文档中的示例:
import numpy as np
import matplotlib.pyplot as plt
# evenly sampled time at 200ms intervals
t = np.arange(0., 5., 0.2)
# red dashes, blue squares and green triangles
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()
在图表上生成三条不同颜色和形状的线条。