概要:
python的matplotlib作图很强大,本文教你用6种不同方式解决将多种数据曲线画到一起。
问题:
今天,老板又要一个数据报表,小明选择用 python来实现。“用matplotlib用来可视化。并且必须用不同颜色标志每个数据曲线,曲线这些颜色也应该在Python里自动选择。”
"Python大大,你能给我一个方法,在同一个图中为不同的地块添加不同的颜色吗?",小明把这个问题抛给了Python大大。大大低头片刻,然后胸有成足的抬起头,说,“可以,给你6个办法来实现!!”
方式一初级办法:
利用Matplotlib的默认方式来执行此操作。
例如:
import matplotlib.pyplot as plt import numpy as np x = np.arange(10) plt.plot(x, x) plt.plot(x, 2 * x) plt.plot(x, 3 * x) plt.plot(x, 4 * x) plt.show()
而且,正如您可能已经知道的那样,您可以轻松添加图例:
import matplotlib.pyplot as plt import numpy as np x = np.arange(10) plt.plot(x, x) plt.plot(x, 2 * x) plt.plot(x, 3 * x) plt.plot(x, 4 * x) plt.legend(['y = x', 'y = 2x', 'y = 3x', 'y = 4x'], loc='upper left') plt.show()
如果要控制将循环的颜色:
import matplotlib.pyplot as plt import numpy as np x = np.arange(10) plt.gca().set_color_cycle(['red', 'green', 'blue', 'yellow']) plt.plot(x, x) plt.plot(x, 2 * x) plt.plot(x, 3 * x) plt.plot(x, 4 * x) plt.legend(['y = x', 'y = 2x', 'y = 3x', 'y = 4x'], loc='upper left') plt.show()
希望有所帮助!如果您对matplotlib不熟悉。请关注微信python_dada学习。
方式二:
首先,如果你想要在一个图上上绘制很多数据曲线,可以:
1. 将它们放在不同的图上(考虑在一个图上使用一些子图),或
2. 使用颜色以外的其他东西(即标记样式或线条粗细)来区分它们。
否则,你将陷入一个非常混乱的境地!
除此之外,许多人在不同程度上都是色盲,区分众多微妙不同的颜色对于更多的人来说比你可能意识到的要困难。
话虽如此,如果你真的想在一个轴上放20条线,并且有20种相对不同的颜色,这是一种方法:
import matplotlib.pyplot as plt import numpy as np num_plots = 20 # Have a look at the colormaps here and decide which one you'd like: # http://matplotlib.org/1.2.1/examples/pylab_examples/show_colormaps.html colormap = plt.cm.gist_ncar plt.gca().set_color_cycle([colormap(i) for i in np.linspace(0, 0.9, num_plots)]) # Plot several different functions... x = np.arange(10) labels = [] for i in range(1, num_plots + 1): plt.plot(x, i * x + 5 * i) labels.append(r'$y = %ix + %i