- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 R 的 gglot2 包中的条形图来可视化时间序列与其基线值的偏移量。例如,采用以下合成数据:
baseline = 400
steps <- sample(0:10,50,replace=TRUE) - sample(0:10,50,replace=TRUE)
value <- cumsum(steps) + baseline
time = 1:50
data <- data.frame(time,value)
print(value)
[1] 400 400 397 397 393 400 394 395 389 389 385 395 400 399 405 403 399 401 399 401
[21] 401 401 398 397 395 395 401 402 393 400 399 398 406 412 417 413 410 401 400 399
[41] 394 401 406 406 401 404 411 413 404 402
我可以按原始比例绘制图表,但这并不能提供真正的信息:
longdata <- ddply( data, "value", transform, posneg=sign(value-baseline) )
longdata[longdata$posneg == 0,'posneg'] <- 1
p_aes <- aes( time, value, fill=factor(posneg))
p_scale <- scale_fill_brewer( palette='Set1', guide=FALSE )
p_geom <- geom_bar( stat='identity', position='identity' )
ggplot(longdata) + p_aes + p_scale + p_geom
通过沿 y 轴移动美学(即 y = 值 - 基线),我得到了我想要显示的图表,这很好而且很容易。
longdata <- ddply( data, "value", transform, posneg=sign(value-baseline) )
longdata[longdata$posneg == 0,'posneg'] <- 1
p_aes <- aes( time, value-baseline, fill=factor(posneg))
p_scale <- scale_fill_brewer( palette='Set1', guide=FALSE )
p_geom <- geom_bar( stat='identity', position='identity' )
ggplot(longdata) + p_aes + p_scale + p_geom
不幸的是,y 轴的比例现在更改为与基线的偏移量,即“值 - 基线”。但是,我确实希望 y 轴保持原始值(380 到 420 之间的值)。
有什么方法可以保留第二张图表的原始 y 轴刻度?对于可视化与目标值的差异,您还有其他建议吗?
最佳答案
添加功能:
yaxis_format <- function(x){
lab <- 400-x
}
然后使用scale_y_continuous(label = yaxis_format)
处理标签:
ggplot(longdata) + p_aes + p_scale + p_geom + scale_y_continuous(label=yaxis_format)
最终的代码和图表应该是这样的:
library(ggplot2)
library(plyr)
set.seed(201)
baseline = 400
steps <- sample(0:10,50,replace=TRUE) - sample(0:10,50,replace=TRUE)
value <- cumsum(steps) + baseline
time = 1:50
data <- data.frame(time,value)
yaxis_format <- function(x){
lab <- 400-x
}
longdata <- ddply( data, "value", transform, posneg=sign(value-baseline) )
longdata[longdata$posneg == 0,'posneg'] <- 1
p_aes <- aes( time, value-baseline, fill=factor(posneg))
p_scale <- scale_fill_brewer( palette='Set1', guide=FALSE )
p_geom <- geom_bar( stat='identity', position='identity' )
ggplot(longdata) + p_aes + p_scale + p_geom + scale_y_continuous(label=yaxis_format)
+ ylab("Value")
现在,一切就绪后,请注意比例尺是奇数。改用 scale_y_reverse
来修复它:
ggplot(longdata) + p_aes + p_scale + p_geom + scale_y_reverse(label=yaxis_format)
+ ylab("Value")
关于r - 使用条形图可视化与目标值的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27320150/
我想通过下面的代码获取event.target.value。 class Detail { changeOwner(val: string){ console.log
我有一个简单的 jQuery 表单,使用来自 malsup ( http://jquery.malsup.com/form/ ) 的 jQuery 表单插件和用于测试的 ajax(如下)。 在我的页面
是否可以在不停止运行的情况下更改正在运行的过渡的目标位置或属性,使其像平滑过渡一样? 让我解释一个例子,假设我的初始动画如下: -webkit-transition:-webkit-transform
我正在使用 jQuery 创建一个滑动图像库,当给定一个数值时,“left”css 属性工作正常,但当给定一个变量时,它不会执行任何操作。这是我的代码: $(document).mousemove(f
我是一名优秀的程序员,十分优秀!