Ste*_*ron 1 plot colors matplotlib python-3.x
我正在尝试使用matplotlib(python 3.5)创建一个散点图,其中x轴上的每个刻度都具有不同的颜色。这怎么可能?
例如,假设x标记是“ 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()
Run Code Online (Sandbox Code Playgroud)
我已经试过了
my_colors = ['c', 'b', 'r', 'r', 'g', 'k', 'b']
plt.xticks(x, ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'], color=my_colors)
Run Code Online (Sandbox Code Playgroud)
但这不起作用。
您可以遍历刻度线标签(使用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()
Run Code Online (Sandbox Code Playgroud)