【问题标题】:How can draw a ggplot with semi data?如何用半数据绘制 ggplot?
【发布时间】:2016-04-17 15:18:50
【问题描述】:

问题很简单:我有 4 天的销售量。我想用 ggplot 将我的数据绘制为 20 天,这意味着我的行应该代表前 4 天,直到 20 天为空。 下一步是从用户那里收集每日销售量,这将更新销售数据和绘图线。 (如果你在这个阶段帮助我 - 如何通过闪亮在 data.frame 中添加行,我会很高兴。)

https://stackoverflow.com/questions/34707097/another-follow-up-to-add-values-to-a-reactive-table-in-shiny-when-we-already-h

How to add a new row to uploaded datatable in shiny

我有一个错误:ggplot2 不知道如何处理类矩阵的数据。

错误:ggplot2 不知道如何处理类矩阵的数据。

 a <- rep(0, 20)
 b <- 1:20
 sales <- c(160, 150, 121, 93)
 dayid<- 1:4

 if(length(sales)<-20){rbind(sales, a[length(sales):length(a)])}
 if(length(dayid)<-20){rbind(dayid, b[length(dayid):length(b)])}
 xx <- cbind(dayid,sales)
  y<-ggplot(as.data.frame(xx), aes(dayid)) +  geom_line(size=1,aes(y=cumsum(sales), colour = "sales"))

【问题讨论】:

  • 与 20 天相比,不是完整的数据。例如,我在第 4 天,过去 4 天有 4 个销售量,我可以用 ggplot 观察模式。但是,我希望看到空的 16 天,因为我会在闪亮的情况下玩这个情节。

标签: r ggplot2


【解决方案1】:

将您的矩阵转换为 data.frame

y<-ggplot(as.data.frame(xx), aes(dayid)) + 
          geom_line(size=1,aes(y=cumsum(sales), colour = "sales"))

【讨论】:

  • 感谢修复。但是这一次我对警告消息发出警告:删除了包含缺失值的 16 行(geom_path)。它仅显示 4 天 4 次销售。我怎样才能强制绘制为 20 天?
  • 为了模拟您的代码,我们需要 Col2 的值,但未提供该值。在绘制之前检查矩阵“dayid”的值以查看数据中是否没有 NA。
  • Col2 应该写成 sales 是我的错误。我编辑了!
  • 问题在于第一个 if 中 sales 和 a 之间的 rbind,这导致了 NA,因为 sales 有 4 列,a 有 20。在进行 rbind 后查看 sales。希望对您有所帮助。
猜你喜欢
  • 2012-10-17
  • 1970-01-01
  • 2014-09-23
  • 2019-12-11
  • 2021-03-23
  • 2020-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多