python - 根据字典 matplotlib 中的值更改标签颜色
问题描述
我有一个字典,其中包含作为标签的键和作为绘图颜色的值。使用以下示例:使用 matplotlib 更改绘图处特定刻度的颜色。如何根据字典中的键更改标签颜色。请注意,标签可以在 x 轴上重复多次,它们可以是字符串,例如标签 = 'A'、'B'、'C'、'D'。
这是代码的一点修改:
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(5,4))
ax.plot([1,2,3])
colors = {0.00 :'grey',0.25:'yellow',0.50:'brown',2.00:'red'}
for k, v in colors.items():
ax.get_xticklabels()[k].set_color(v)
plt.show()
我希望绘图上的每个标签都与颜色相关联,但我得到一个带有此错误的普通绘图:TypeError:列表索引必须是整数或切片,而不是浮点数。我正在尝试将其专门用于字符串标签。
解决方案
一种解决方案是检查字典键中是否存在刻度标签。为了比较确切的值,我将键从浮点数转换为字符串。我相信这对你来说应该不是问题。
PS:根据@ImportanceOfBeingEarnest 的评论,我会声明这个答案假设该数字保持静态并且未调整大小。
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(5,4))
ax.plot([1,2,3])
colors = {'0.00' :'grey','0.25':'yellow','0.50':'brown','2.00':'red'}
fig.canvas.draw()
for xtic in ax.get_xticklabels():
if xtic.get_text() in colors.keys(): # Change color if exist else not
xtic.set_color(colors[xtic.get_text()])
plt.show()
推荐阅读
- javascript - 函数返回未定义的、预期的 Promise 或值,并且无法使用云函数从 Firebase 数据库中删除旧数据
- kendo-grid - 剑道网格不显示不包含在客户端模板行中的 Clolumns 数据
- java - 需要帮助将转换后的文本从 serverlet 转换为语音到 jsp 页面
- database - 如何在另一个表的 ID 中的 Postregsql 实体表中插入自动生成的 ID
- r - 观察箱线图中的子分类值
- jquery - 未定义获取文件名列表
- javascript - 排序未应用于对象列表
- c# - 有没有办法在具有 .net 核心的计时器上运行 DI 范围服务?
- python - 需要在代码中放入哪些参数才能正确执行 requests.post 函数?
- angular - 如何返回http请求数据