如何在Matplotlib中高亮X轴上特定值及其对应标签
在Matplotlib中高亮X轴特定值
直接上可运行的代码,实现你要的效果:
import matplotlib.pyplot as plt list1 = [1,2,3,4,5,6,7,8,9] # X轴数值 list2 = [1,2,23,4,5,6,7,8,9] # Y轴数值 list3 = [2,3,6,7] # 需要高亮的X轴值 # 绘制基础折线图 plt.plot(list1, list2) # 获取X轴刻度对象与对应数值 xticks = plt.gca().get_xticklabels() xtick_values = plt.gca().get_xticks() # 遍历刻度,匹配目标值后设置高亮颜色 for tick, value in zip(xticks, xtick_values): if value in list3: tick.set_color('red') # 将符合条件的X轴标签改为红色 # 可选:同时高亮对应的数据点 plt.scatter(value, list2[list1.index(value)], color='red', s=50) plt.show()
关键操作说明:
- 通过
plt.gca().get_xticklabels()和get_xticks()分别获取X轴的标签对象与对应刻度数值 - 遍历配对的标签和数值,判断是否属于
list3,符合条件则修改标签颜色 - 额外的
scatter代码是用来高亮对应的数据点,不需要的话可以直接删除 - 颜色支持任意Matplotlib可用的颜色值,比如
'green'、'orange'等
内容的提问来源于stack exchange,提问作者Kapil
相关产品推荐
相关产品推荐

