- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含 x 行(即抽取次数)和 y 列(观察次数)的矩阵。它们代表 y 预测的分布。
现在我想制作一张抽签的“热图”。也就是说,我想绘制一个“置信区间”(不是真正的置信区间,而只是其间带有阴影的所有值),而是作为“热图”(heat map 的示例)。这意味着,例如,如果用于观察 y=y* 的很多平局都在 1 左右,但对于同一观察也有 5 平局,那么 1 附近的置信区间区域更暗(但整体是1 到 5 之间仍然是阴影)。
完全清楚:例如,我喜欢答案 here 中的情节,但我希望灰色置信区间改为着色为强度(即某些区域较暗)。
有人可以告诉我如何实现吗?
提前致谢。
编辑:根据要求:示例数据。第一列的前 20 个值示例(即 y[1:20,1]):
[1] 0.032067416 -0.064797792 0.035022338 0.016347263 0.034373065
0.024793101 -0.002514447 0.091411355 -0.064263536 -0.026808208 [11] 0.125831185 -0.039428744 0.017156454 -0.061574540 -0.074207109 -0.029171227 0.018906181 0.092816957 0.028899699 -0.004535961
最佳答案
因此,这其中最困难的部分是将您的数据转换为正确的形状,这就是为什么分享真正看起来像您的数据的东西而不仅仅是单个列是很好的原因。
假设您的数据是一个包含 10,000 行和 10 列的矩阵。我将只使用均匀分布,所以最后会是一个无聊的情节
n = 10000
k = 10
mat = matrix(runif(n * k), nrow = n)
接下来,我们将使用 apply
计算每一列的分位数,转置并使其成为数据框:
dat = as.data.frame(t(apply(mat, MARGIN = 2, FUN = quantile, probs = seq(.1, 0.9, 0.1))))
添加一个x
变量(因为我们转置了,每个x值对应原始数据中的一列)
dat$x = 1:nrow(dat)
我们现在需要把它变成一个“长”形式,根据中位数周围某个偏差组的最小值和最大值进行分组,当然还要去掉 quantile
:
library(dplyr)
library(tidyr)
dat_long = gather(dat, "quantile", value = "y", -x) %>%
mutate(quantile = as.numeric(gsub("%", "", quantile)),
group = abs(50 - quantile))
dat_ribbon = dat_long %>% filter(quantile < 50) %>%
mutate(ymin = y) %>%
select(x, ymin, group) %>%
left_join(
dat_long %>% filter(quantile > 50) %>%
mutate(ymax = y) %>%
select(x, ymax, group)
)
dat_median = filter(dat_long, quantile == 50)
最后我们可以绘制了。我们将为每个“组”绘制一条透明色带,即 10%-90% 间隔、20%-80% 间隔、... 40%-60% 间隔,然后在中位数(50% ).使用透明度,中间会更暗,因为它上面有更多的色带重叠。这不会从最小值到最大值,但如果您将 quantile
调用中的 probs
设置为从 0 到 1 而不是 .1 到 . 9.
library(ggplot2)
ggplot(dat_ribbon, aes(x = x)) +
geom_ribbon(aes(ymin = ymin, ymax = ymax, group = group), alpha = 0.2) +
geom_line(aes(y = y), data = dat_median, color = "white")
值得注意的是,这不是传统的热图。热图通常意味着您有 3 个变量,x、y 和 z(颜色),其中每个 x-y 对都有一个 z 值。这里有两个变量,x 和 y,y 取决于 x。
关于R plot 'Heat map' 一组绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30265557/
OpenStack“Heat”的编排引擎可以部署计算资源和配置软件,称为 HOT 模板。 github 上有很多例子: https://github.com/openstack/heat-templa
我有一个 wix 安装程序的预构建事件,它看起来像这样: "%WIX%\bin\heat.exe" dir %SystemDrive%\Staging -dr INSTALLFOLDER -cg Co
我有一个工作正常的 WiX 安装程序,但我已经有几个月没有使用它了...所以,我没有尝试构建安装程序(在重新配置的机器上),现在它无法构建每个时间。我试图简化一切以找出失败的地方,但我似乎仍然无法弄清
所以这是基本设置。我有一个现有的 WIX 项目,它将一堆单独的片段构建到一个更大的 MSI 中。我正在尝试更改项目以允许您选择要安装的单个部分。我遇到的程序是,当我在较小的目录上运行 heat 以创建
所以我正在使用 Wix 安装我的应用程序,它运行良好并且可以满足我的所有需求。我现在遇到的一个问题是。我在我的 VS 2010 预构建事件命令中使用以下命令行参数: heat.exe dir "C:\
所以我正在使用 Wix 安装我的应用程序,它运行良好并且可以满足我的所有需求。我现在遇到的一个问题是。我在我的 VS 2010 预构建事件命令中使用以下命令行参数: heat.exe dir "C:\
OpenStack Heat AutoScaling 1、背景 Openstack的Heat是在H版之后加入的组件,旨在创建一套业务流程,更轻松的管理一个集群。集群内的虚拟机可以作为一个整体,
我有一个包含一个文件的目录:Iesi.Collections.dll。 当我运行以下命令时: heat.exe dir D:\MyDir -cg References -srd -o D:\Produ
我正在使用Wix 3.5的最新版本,并尝试使用heat.exe生成片段文件。命令行是: "%WIX%\bin\heat.exe" project "MyProj.csproj" -pog Binari
我正在制作一个“热图”,其中箱中的颜色是每个箱中某些第三个值的平均值。例如,x 和 y 位置,然后是平均海拔。我的问题是散点和框并不总是重叠(左上角)。我只是错过了一些简单的事情吗?有更好的办法吗?
我的问题是在向 leaflet.heat 层添加点时我似乎无法增加点强度。当我增加一个点的强度时。 [lat, long, intensity] 对于 leaflet.heat,无论我将强度设置为多少
使用 xslt 文件转换使用 wix 的热收集组件时,是否可以仅包含某些文件扩展名?我知道我可以使用以下内容排除文件扩展名: 但是是否可以包含多种文件类型并排除其他所有文件(例如:.exe、.dl
我正在使用 heat.exe 生成 WiX 文件片段。 我通过在 Visual Studio 中向我的网站项目添加构建后步骤来完成此操作,这样每次构建完成时,都会拾取 Web 项目中的任何新文件并创建
我正在使用热量从 .csproj 文件中获取二进制文件。这工作正常,但是,当我卸载或升级应用程序时,我想将收获的文件“MyApp”.exe.config 保留在安装目录中,以便用户不会丢失其默认设置。
我正在使用热量从 .csproj 文件中获取二进制文件。这工作正常,但是,当我卸载或升级应用程序时,我想将收获的文件“MyApp”.exe.config 保留在安装目录中,以便用户不会丢失其默认设置。
我有一个 OpenStack Heat 模板,它大量借鉴了 CloudFormation 参数,这就是我添加 CF 标签的原因。 我的模板包含两个实例,应按特定顺序启动(或至少通过用户数据配置)。我以
我有一个包含 x 行(即抽取次数)和 y 列(观察次数)的矩阵。它们代表 y 预测的分布。 现在我想制作一张抽签的“热图”。也就是说,我想绘制一个“置信区间”(不是真正的置信区间,而只是其间带有阴影的
使用 WiX Toolset 3.10,并尝试为使用 heat.exe 实用程序收集的某些文件创建快捷方式,如下所示: "%WIX%\bin\heat.exe" dir SourceDir -nolo
我正在关注this tutorial here我复制粘贴了第一个代码示例: from scipy import misc l = misc.lena() misc.imsave('lena.png',
我正在尝试实现 this demo在我的应用程序中,但无论值如何,我都会将整个 map 变黑。这是我的代码: var map = AmCharts.makeChart( "chartdiv", { "
我是一名优秀的程序员,十分优秀!