pyplot/matplotlib 条形图,填充颜色取决于值

2024-04-22

我想生产在Python中使用 matplotlib/pyplot

  • 根据值进行填充的条形图。
  • 图例颜色条

同时将模块依赖性保持在最低限度。

有没有比以下更简单的事情:

import matplotlib.pyplot as plt

def color_gradient ( val, beg_rgb, end_rgb, val_min = 0, val_max = 1):
    val_scale = (1.0 * val - val_min) / (val_max - val_min)
    return ( beg_rgb[0] + val_scale * (end_rgb[0] - beg_rgb[0]),
             beg_rgb[1] + val_scale * (end_rgb[1] - beg_rgb[1]),
             beg_rgb[2] + val_scale * (end_rgb[2] - beg_rgb[2]))

# -----------------------------------------------
x_lbls = [ "09:00", "09:15", "10:10"]
y_vals = [       7,       9,       5]

plt_idx = np.arange( len( x_lbls))
bar_wd  = 0.35

grad_beg, grad_end = ( 0.5, 0.5, 0.5), (1, 1, 0)
col_list = [ color_gradient( val,
                             grad_beg,
                             grad_end,
                             min( y_vals),
                             max( y_vals)) for val in y_vals]

plt.bar( plt_idx, y_vals, color = col_list)
plt.xticks( plt_idx + bar_wd, x_lbls)
plt.show()

这仍然缺少图例颜色条

我在 R 中的解决方案ggplot将会:

library(ggplot2)
df = data.frame( time = 1:10, vals = abs(rnorm( n = 10)))
ggplot( df, aes( x = time, y = vals, fill = vals)) + 
  geom_bar(stat = "identity") + 
  scale_fill_gradient(low="#888888",high="#FFFF00")

and produces the desired output: Example in R with ggplot


我不知道如何在不绘制其他内容然后清除它的情况下让颜色条工作,所以这不是最优雅的解决方案。

import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np

y = np.array([1, 4, 3, 2, 7, 11])
colors = cm.hsv(y / float(max(y)))
plot = plt.scatter(y, y, c = y, cmap = 'hsv')
plt.clf()
plt.colorbar(plot)
plt.bar(range(len(y)), y, color = colors)
plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pyplot/matplotlib 条形图,填充颜色取决于值 的相关文章

随机推荐

  • 这段 C# 代码中的“&=”有什么作用?

    我遇到了一些看起来像这样的代码 string someString bool someBoolean true someBoolean someString ToUpperInvariant Equals blah 为什么我要使用按位运算符
  • 将非规范化数字刷新为零

    我在网上搜索过 但没有结果 Xcode 和 Visual C 有没有办法将非规范化数字视为 0 我本以为 IDE 首选项中有一个选项可以打开此选项 但似乎找不到它 我正在做一些跨平台音频工作 需要停止某些处理器占用资源 Cheers 您正在
  • 如何解决这个 sass 插值问题

    警告 您可能不想在此处进行插值时使用颜色值白色 它最终可能会呈现为白色 这可能会产生无效的 CSS 将颜色名称用作字符串或映射键时 请始终引用颜色名称 例如 白色 如果您确实想在此处使用颜色值 请使用 colorName 93 text c
  • 为什么要在 base::split(.$cyl) 中加点?

    在 R 中用于数据科学第21 5 1章 https r4ds had co nz iteration html shortcuts 这个语法用在基函数中split cyl 为什么里面的点 cyl 套餐purrr有一个占位符的语法 or x
  • 使用多个 txt 文件的内容创建数据框

    我是 R 编程新手 在尝试从多个文本文件创建一个数据框时遇到困难 我有一个包含 100 多个文本文件的目录 每个文件都有不同的文件名 但内容具有相似的格式 例如3 列 姓名 年龄 性别 我想将每个文本文件加载到 R 中并将它们合并到 1 个
  • Plotly Scattermapbox,无法向标记添加文本

    我正在尝试将文本添加到下面的绘图中 原始代码修改自https plotly com python lines on mapbox https plotly com python lines on mapbox import plotly g
  • Entity Framework Core 2.0 中每种类型的表

    这些是我的模型 public class Company public int CompanyId get set public string Name get set public string Address get set publi
  • TS2345:类型“number |”的参数未定义' 不可分配给'number' 类型的参数

    我正在尝试在打字稿中创建一个 chrome 扩展 我有以下代码 我尝试从后台脚本向 contentscript 发送消息 background script chrome tabs query active true currentWind
  • 纯 CSS 的 Tab 系统,anchor 避免了向标签的传播

    我正在制作一个仅使用 CSS 的选项卡系统 target and checked伪类 但我在标签内有一个锚点 并且标签不会触发 checked 如果您单击锚点 checked不会触发 因为点击位于 a 标签 但位于 a
  • 如何从sql server触发器操作TEXT、NTEXT数据

    我很难理解 TEXT NTEXT 数据不能从 sql server 触发器进行操作 是真的吗 如果没有 请解释我如何操作 SQL Server 触发器中的 TEXT NTEXT 数据 谢谢 不要使用 text 或 ntext 使用 nvar
  • ANR com.android.vending.billing.IInAppBillingService

    自从修改我的代码以使用 Android 计费库而不是示例应用程序中的旧 IABHelper 以来 我一直通过下面的跟踪收到大量 ANR 有人知道如何解决这个问题吗 跟踪上没有我的一行代码 main prio 5 tid 1 Native g
  • JSON 对象和 Javascript 对象

    我正在创建一个网络应用程序的前端 我收到 JSON 格式的所有响应 解析它并将其作为 html 格式 我查看了一些 javascript MVC 框架 即backbone js ember js 等 发现它们对于我的简单应用程序来说太过分了
  • 有没有带有 API 的 Latex Web 服务? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有一个 Web 服务 API 接受这种类型的 Latex http 请求 http some web
  • 如何使用 qt 在键盘上仅显示数字

    我在我的项目中使用 Qt Quick Virtual Keyboard 当我单击一个对象时 我想显示键盘但只显示数字 我怎样才能做到这一点 这就是我想做的 您可以使用Qt ImhFormattedNumbersOnly http doc q
  • Malloc 的字符串包含垃圾值

    我刚刚将 Objective C 库转换为 C 库 希望能够跨平台 然而 在我将这件事发送出去进行处理之前 一切似乎都正常 就在我收到错误的时候 回顾一些修改 我注意到调试器中的一些东西 就在 malloc 的字符串之后 如下所示 char
  • 尝试将盒装 dyn 特征传递到函数时出现“借用的值寿命不够长”错误

    我是 Rust 新手 我对借用检查器的行为感到非常困惑 trait Foo fn foo self struct Bar lt a gt pub f a Vec
  • 从选定的单选按钮中选择下一个单选按钮

    我有一个单选按钮组 我想选择所选按钮旁边的一个 document ready function next click function input name choice checked next click button display
  • 使用 Filemerge 如何查看下部窗格。有结果的那个?

    您知道 您进行了全新安装 底部的窗格就消失了 我喜欢那个窗格 看到那个小点 单击它 您可以将窗口拉入视图 现在生活好多了
  • UI-路由器和解析,控制器中的未知提供者

    我在 UI Router state 调用中使用解析 在我的控制器中 我可以毫无问题地访问这些值 但它会抛出错误 如下所示 injector unpr p0 ctrlOptionsProvider 20 3C trlOptions 以下代码
  • pyplot/matplotlib 条形图,填充颜色取决于值

    我想生产在Python中使用 matplotlib pyplot 根据值进行填充的条形图 图例颜色条 同时将模块依赖性保持在最低限度 有没有比以下更简单的事情 import matplotlib pyplot as plt def colo