【问题标题】:R ggplot - include lower and upper bound for y-axesR ggplot - 包括 y 轴的下限和上限
【发布时间】:2014-07-23 23:05:59
【问题描述】:

我在 R 中使用 ggplot 将我的数据表示为绘图。问题是不包括 y 轴的下限和上限(0 和 1.45)

data <- data.frame(User= numeric(0), Time= numeric(0), 
                   Category= character(), stringsAsFactors=FALSE)

data[1,] <- c(1,0.42,"Category 1")
data[2,] <- c(2,0.63,"Category 1")
data[3,] <- c(3,0.50,"Category 1")
data[4,] <- c(4,0.72,"Category 1")
data[5,] <- c(4,0.73,"Category 2")
data[6,] <- c(5,0.60,"Category 1")

library(ggplot2)

ggplot(data= data, aes(x=User, y=Time, fill= Category)) + 
geom_bar(stat="identity")

我该如何解决这个问题?

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    问题在于您制作数据框的方式。当您输入c() 数字和字符时,数字就变成了字符。你可以看到在你的数据框上使用str()

    str(data)
    'data.frame':   6 obs. of  3 variables:
     $ User    : chr  "1" "2" "3" "4" ...
     $ Time    : chr  "0.42" "0.63" "0.5" "0.72" ...
     $ Category: chr  "Category 1" "Category 1" "Category 1" "Category 1" ...
    

    直接制作你的数据框会给出正确的格式和正确的图。

    data<-data.frame(
          User=c(1,2,3,4,4,5),
          Time=c(0.42,0.63,0.5,0.72,0.73,0.6),
          Category=c("Category 1","Category 1","Category 1",
                    "Category 1","Category 2","Category 1"))
    str(data)
    'data.frame':   6 obs. of  3 variables:
     $ User    : num  1 2 3 4 4 5
     $ Time    : num  0.42 0.63 0.5 0.72 0.73 0.6
     $ Category: Factor w/ 2 levels "Category 1","Category 2": 1 1 1 1 2 1
    

    【讨论】:

    • 即使做data[1,] &lt;- list(1,0.42,"Category 1")(使用list()而不是c())也可以,但我同意以这种方式(逐行)构建data.frame并不是一个好主意一般。
    猜你喜欢
    • 2015-03-27
    • 1970-01-01
    • 2022-07-29
    • 1970-01-01
    • 1970-01-01
    • 2023-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多