You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python水平条形图自定义设置求助:高亮最高值条形+调整刻度布局

解决方案

以下是修改后的代码,实现了你需要的两个需求:将最高数值的条形设为红色,同时把y轴刻度移到右侧对齐:

import numpy as np
import matplotlib.pyplot as plt

rating = [8, 4, 5, 6, 7, 8, 9, 5]
objects = ('h', 'b', 'c', 'd', 'e', 'f', 'g', 'a')
y_pos = np.arange(len(objects))

# 生成颜色列表:最大值对应条形设为红色,其余为默认蓝色
max_rating = max(rating)
bar_colors = ['tab:blue' if score != max_rating else 'red' for score in rating]

# 绘制水平条形图并指定颜色
plt.barh(y_pos, rating, align='center', alpha=0.5, color=bar_colors)

# 调整y轴刻度到右侧
plt.yticks(y_pos, objects)
ax = plt.gca()
ax.yaxis.tick_right()  # 将y轴刻度线和标签移至右侧

# 自动调整布局,避免标签被截断
plt.tight_layout()

plt.show()

关键改动说明:

  • 高亮最大值条形:通过列表推导式创建颜色列表,遍历rating数组,判断每个数值是否为最大值,对应设置红色,其余保持默认蓝色(tab:blue是matplotlib的默认蓝色,和原代码样式一致)。
  • 调整y轴刻度布局:通过plt.gca()获取当前坐标轴对象,调用yaxis.tick_right()将y轴的刻度和标签全部移到条形右侧,匹配参考图的布局。tight_layout()用于自动调整图表元素位置,防止标签被画布边缘截断。

内容的提问来源于stack exchange,提问作者Sadcow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 11:45:21