小编use*_*440的帖子

ggplot stat_summary 轴受限时

使用 stat_summary 将均值和 ci 与箱线图一起绘制到图上

p1 <- ggplot(data=df, aes(x=group, y=metric ) ) +
  geom_boxplot(outlier.shape = NA, fill = fill, color=line, alpha = 0.5) +
  stat_summary(fun.data=mean_cl_normal, aes(color = "Mean and CI"))
Run Code Online (Sandbox Code Playgroud)

除此之外,我还要求限制 y 轴以避免显示超出范围的值。这是通过

p1 <- p1 + scale_y_continuous(limits =c(lower.limit,upper.limit) )
Run Code Online (Sandbox Code Playgroud)

但是,观察到应用限制时,图中所示的平均值与未应用限制的情况不同。这是预期的工作方式吗?似乎 stat_summary 只包括通过应用的限制内的点scale_y_continuous

stat_summary即使应用了轴限制,有没有一种方法可以使用包括图中限制之外的点来获得均值和 ci ?

r ggplot2

1
推荐指数
1
解决办法
1208
查看次数

R ggplot2 - 为条形图添加值

遵循R 食谱中的以下示例

dat <- data.frame(
  time = factor(c("Lunch","Dinner"), levels=c("Lunch","Dinner")),
  total_bill = c(14.89, 17.23)
)

ggplot(data=dat, aes(x=time, y=total_bill, fill=time)) +
    geom_bar(colour="black", stat="identity") +
    guides(fill=FALSE)
Run Code Online (Sandbox Code Playgroud)

如何添加total_bill 的值(14.89、17.23)以显示在每个条形内部的顶部,并将值四舍五入到小数点后一位,例如 - 14.9、17.2

上面的代码如图

r

1
推荐指数
1
解决办法
5582
查看次数

R ggplot - 获取要在直方图中的轴上显示的所有离散 x 值

通过数据框df和列,col_name我使用下面的函数来生成直方图,如下图所示。

myHistogramDensity <- function(df, col_name) {
  p1 <- ggplot(df, aes_string(x=col_name)) + 
    geom_histogram(aes(y=..density..), binwidth=1, colour="black", fill="white")
  p1 <- p1 + scale_y_continuous(labels=percent) 
  p1 <- p1 + annotation_custom(tableGrob(myMinMaxMed(df, col_name), rows = NULL),
                               xmin=10, xmax=13, ymin=0.5, ymax=0.6)
  return (p1)
}
Run Code Online (Sandbox Code Playgroud)

这给了我一个如下所示的直方图。

如何让 x 轴显示 中存在的所有离散值的标签col_name

直方图

r ggplot2

1
推荐指数
1
解决办法
9044
查看次数

十六进制转储为二进制-等效xxd -r

在Linux bash shell中,我使用以下命令将纯十六进制转储转换为二进制

$ echo "8cd59ef53c9aaa68311b73767e0975e7" | xxd -r -p > xxd_out.bin
Run Code Online (Sandbox Code Playgroud)

当我在文本查看器中打开文件时,它看起来像 ŒÕžõ<šªh1sv~ uç

或在xxd中

$ xxd -b xxd_out.bin
00000000: 10001100 11010101 10011110 11110101 00111100 10011010  ....<.
00000006: 10101010 01101000 00110001 00011011 01110011 01110110  .h1.sv
0000000c: 01111110 00001001 01110101 11100111                    ~.u.
Run Code Online (Sandbox Code Playgroud)

或在Notepad ++ Hex-Editor(插件)视图中 在此处输入图片说明

如何在Ruby中获得相同的二进制输出?有没有可用的库xxd -r -p

ruby hexdump

1
推荐指数
1
解决办法
1044
查看次数

Rails活动模型序列化器-属性别名

我正在将Angular 2应用程序与Rails 5.1 API后端集成在一起。

我的Angular模型中有一个Comment具有messagedate属性的模型。但是,在我的Rails模型中Comment,连同message我拥有的属性created_at和via updated_at自动提供的属性。ActiveRecord::Migrationt.timestamps

我使用ActiveModel::Serializer会对API反应变量和更好地控制我comment_serializer我想包括date在地方的created_at在每个评论API响应GET /commentsGET /comments/:id等等,这样的角度模式不必改变-我怎么去这个假设这是正确的做法?

另外,当我从Angular客户端添加注释时,我希望将模型中的date属性Comment映射到Rails created_at中的相应Comment模型中-我该如何处理?

ruby-on-rails active-model-serializers angular

1
推荐指数
1
解决办法
1328
查看次数

ggplot faceting - 删除空的x轴标签

我在本文后面使用了faceting,除了使用某个数据子集删除一些行.

# create a dataset
specie=c(rep("sorgho" , 3) , rep("poacee" , 3) , rep("banana" , 3) , rep("triticum" , 3) )
condition=rep(c("normal" , "stress" , "Nitrogen") , 4)
value=abs(rnorm(12 , 0 , 15))
data=data.frame(specie,condition,value)

# remove some rows
data=data[c(1:2,5:6,7,9,11:12),]

# Grouped
ggplot(data, aes(fill=condition, y=value, x=specie)) + 
  geom_bar(position="dodge", stat="identity")

# Faceting
ggplot(data, aes(y=value, x=specie, color=specie, fill=specie)) + 
  geom_bar( stat="identity") +    
  facet_wrap(~condition)
Run Code Online (Sandbox Code Playgroud)

这给出了如预期的以下图.我需要从下面的每个图中删除空标签 - 例如,sorgho从第一个图poaceetriticum第二个图等等.

在此输入图像描述

r ggplot2

1
推荐指数
1
解决办法
874
查看次数

JavaScript - 每n秒更新一次innerHTML元素

这里使用JsFiddle ,我需要每隔1s更改一个div的innerHTML,其中包含100个元素的数组中的值.我正在使用循环遍历数组的元素,然后使用每1000ms setTimeout更新innerHTML #number.但是我看到的是元素在1000ms后立即更新.

let num = 100
let data = [];

for (let i = 0; i < num; i++) {
  data.push(Math.random() * 100);
}
console.log(data);

function loadScript(){
    console.log(`Calling loadScript`);
    let elm = document.getElementById("number");
    for(let i = 0; i < data.length; i++){
     setTimeout(() => {
        console.log(`Setting innerHTML as ${data[i]}`);
        elm.innerHTML = data[i].toString();
     },1000);
  }
}

loadScript();
Run Code Online (Sandbox Code Playgroud)

javascript

0
推荐指数
1
解决办法
98
查看次数

R - 如何将变量传递给ggplot

我用来ggplot生成带有拟合线的散点图,如下所示

ggplot(df, aes(x=colNameX, y=colNameY)) + 
    geom_point() +
    geom_smooth(method=loess, se=T, fullrange=F, size=1) + ylim(0,5)
Run Code Online (Sandbox Code Playgroud)

鉴于此,想要将上面概括为一个采用以下参数的函数

scatterWithRegLine = function(df, xColName, yColName, regMethod, showSe, showFullrange, size, yAxisLim) {

  # How should I use the variables passed into the function above within ggplot
}
Run Code Online (Sandbox Code Playgroud)

这样我就可以按如下方式调用该函数

scatterWithRegLine(df, "mpg", "wt", "loess", TRUE, FALSE, 1, c(0,5))
Run Code Online (Sandbox Code Playgroud)

r ggplot2

0
推荐指数
1
解决办法
1521
查看次数

R - 有条件地改变多个列值

使用如下数据框:

set.seed(100)
df <- data.frame(id = sample(1:5, 6, replace = TRUE),
                 val1 = rep(c("true", "false"), 3), 
                 val2 = sample(c("true", "false"), 6, replace = TRUE))

  id  val1  val2
1 31  true false
2 26 false  true
3 56  true false
4  6 false  true
5 47  true false
6 49 false false
Run Code Online (Sandbox Code Playgroud)

需要改变在COL的值val1val2TRUE(R逻辑真),如果值"true"FALSE如果值是"false".

这可以通过

df$val1 <- df$val1 == "true"
df$val2 <- df$val2 == "true"
Run Code Online (Sandbox Code Playgroud)

虽然上面的工作,我有一个案例,列数运行到100s.因此需要一种方法来指定要变异的列 - df[,2:3]如上例所示.虽然基础R解决方案是首选,但其他人欢迎.

r

-5
推荐指数
1
解决办法
302
查看次数