【问题标题】:Plotting 2 continuous variables in barchart using ggplot2使用 ggplot2 在条形图中绘制 2 个连续变量
【发布时间】:2018-02-04 23:14:11
【问题描述】:

我想使用 ggplot 绘制两个连续变量。 假设我有一个数据框,其中一列是 0 和 1 之间的比率,另一列是数量。我希望能够使用

之类的东西来打破 x 轴的比率
 breaks=seq(0, 5, by = .1)

在 y 轴上,我希望得到每个休息时间的总和。它看起来像一个直方图,但 y 轴应该是中断比率内所有列的总和。如果我正在制作直方图,它看起来像这样:

 ggplot(data=data, aes(ratio)) + 
 geom_histogram(breaks=seq(0, 1, by = .1), aes(fill=..count..))

【问题讨论】:

  • 最好根据您的条件创建一个分类变量,并将第二个变量与第一个变量相加。您可以使用生成的数据集使用常规条形图进行绘图。
  • 那是真的..我可以尝试...但我认为在 ggplot 语句中有更直接的方法可以做到这一点。我想..不确定....

标签: r plot ggplot2 bar-chart


【解决方案1】:

试试这个示例脚本。脚本中的 x 代表您想要中断的变量,然后 y 代表您想要在这些中断中求和的变量。最终产品,变量名“SUM”应该有你的总和,名为“facet”的变量应该有你可以绘制的中断

library(dplyr)
dataframe1<-data.frame(x=seq(0,1, length.out = 100), y = seq(0,1000, length.out = 100))
x<-mutate(dataframe1,facet = factor(rep(c("0-0.25", "0.25 - 0.50", "0.50 - 0.75", "0.75 - 1.0"), each = length(dataframe1$x)/4)))
x[,"SUM"]<-NA
x$SUM
list1<-as.list(matrix(unique(x$facet),nrow = 4, ncol = 1))
list1[[1]]
i<-1:4
facetfill<-function(i){
  sum1<-sum(x$y[x$facet==list1[[i]]])                      
  x$SUM[x$facet==list1[i]]<-sum1
  x$SUM
  }
for (j in 1:4) {
  x$SUM<-facetfill(j)
  x$SUM
}
x$SUM
x

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 2019-11-28
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多