【问题标题】:Matplotlib: Every tick in different colorMatplotlib:每个刻度都有不同的颜色
【发布时间】:2017-01-17 11:36:51
【问题描述】:

我正在尝试使用 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)

但这不起作用。

【问题讨论】:

    标签: python-3.x matplotlib plot colors


    【解决方案1】:

    您可以遍历刻度标签(使用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()
    

    【讨论】:

    • 谢谢!完美运行。
    猜你喜欢
    • 2017-07-26
    • 2018-10-06
    • 2016-02-19
    • 2020-04-07
    • 2017-05-19
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多