Matplotlib:每种蜱都有不同的颜色

时间:2016-09-09 10:31:51

标签: python-3.x matplotlib plot colors

我正在尝试使用matplotlib(python 3.5)创建一个散点图,其中x轴上的每个刻度都有不同的颜色。这怎么可能?

例如,假设x-ticks是'Mo','Tu','We','Th','Fr','Sa','Su'。 现在我希望'Mo'是绿色的,'Tu'是蓝色的,等等......

这是我的代码的一个非常简单的版本:

from matplotlib import pyplot as plt
plt.figure(figsize=(16, 11))
x = [1, 2, 3, 4, 5, 6, 7]
y = [10, 12, 9, 10, 8, 11, 10]
plt.scatter(x, y)
plt.xticks(x, ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'])
plt.show()

我已经尝试了

my_colors = ['c', 'b', 'r', 'r', 'g', 'k', 'b']
plt.xticks(x, ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'], color=my_colors)

但这不起作用。

1 个答案:

答案 0 :(得分:2)

您可以使用plt.gca().get_xticklabels()遍历刻度标签(使用.set_color())并在创建后设置颜色。例如:

from matplotlib import pyplot as plt
plt.figure(figsize=(16, 11))
x = [1, 2, 3, 4, 5, 6, 7]
y = [10, 12, 9, 10, 8, 11, 10]
plt.scatter(x, y)
plt.xticks(x, ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'])

my_colors = ['c', 'b', 'r', 'r', 'g', 'k', 'b']

for ticklabel, tickcolor in zip(plt.gca().get_xticklabels(), my_colors):
    ticklabel.set_color(tickcolor)

plt.show()

enter image description here