【问题标题】:Change tick text in matplotlib chart [duplicate]更改matplotlib图表中的刻度文本[重复]
【发布时间】:2022-01-06 12:53:07
【问题描述】:

假设我想将“2”的刻度标签从 Y 轴更改为“B”,我使用了plt.yticsk(2,'B') 但是好像不行

有什么办法可以修改吗?这是代码:

import matplotlib.pyplot as plt 

y = [-1,2,3,4,5,0,1]
x = [3,5,3,9,7,1,4]

colorsValue = []
for value in x:
    if value < 4:
        colorsValue.append('yellow')
    elif value >= 4:
        colorsValue.append('red')
    else:
        colorsValue.append('orange')

plt.barh(y, x, color = colorsValue)

plt.ylabel('Y')
plt.xlabel('X')

plt.yticks(2,'b')

plt.show()

【问题讨论】:

    标签: python matplotlib graph


    【解决方案1】:

    您可以在这里查看如何制作您所期望的东西来找到灵感:https://www.python-graph-gallery.com/191-custom-axis-on-matplotlib-chart

    结果可能如下:

    import matplotlib.pyplot as plt
    
    y = [-1,2,3,4,5,0,1]
    x = [3,5,3,9,7,1,4]
    yticks = ['-1','b','3','4','5','0','1']
    
    colorsValue = []
    for value in x:
        if value < 4:
            colorsValue.append('yellow')
        elif value >= 4:
            colorsValue.append('red')
        else:
            colorsValue.append('orange')
    
    plt.barh(y, x, color = colorsValue)
    
    plt.ylabel('Y')
    plt.xlabel('X')
    
    plt.yticks(y,yticks)
    
    plt.show()
    

    这是你预期的结果吗?

    【讨论】:

    • 感谢您对显示 @Mr. 的图表的帮助。 T
    【解决方案2】:

    你需要先查询位置(所谓的ticks)和标签,然后你可以修改它们并将它们设置为你的名为plt的pyplot对象:

    import matplotlib.pyplot as plt 
    import matplotlib.text
    
    y = [-1,2,3,4,5,0,1]
    x = [3,5,3,9,7,1,4]
    
    colorsValue = []
    for value in x:
        if value < 4:
            colorsValue.append('yellow')
        elif value >= 4:
            colorsValue.append('red')
        else:
            colorsValue.append('orange')
    
    plt.barh(y, x, color = colorsValue)
    
    plt.ylabel('Y')
    plt.xlabel('X')
    
    ticks, labels = plt.yticks()
    for i,t in enumerate(ticks):
        labels[i].set_text(t)
        if t == 2:
            labels[i].set_text('b')
    plt.yticks(ticks,labels)
    
    plt.show()
    

    这是结果图:

    【讨论】:

    • 我想,它只与标签上的变化有关。该解决方案可以轻松扩展以保留其他预先存在的标签。我更新了我的答案,请检查一下,@Mr.T
    • 感谢您帮助嵌入图,@Mr.T!
    猜你喜欢
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 2012-10-19
    • 1970-01-01
    相关资源
    最近更新 更多