ggplot barplot中的y轴顺序错误
问题描述:
在此条图中,条的缩放比例不同.因此,y轴的顺序不正确(157> 1342.6).我该如何解决?
in this barplot the bars are not scaled in the same way. So the y axis is not ordered properly (157 > 1342.6). How do I fix this?
library(reshape)
library(ggplot2)
data <- matrix(1:9, 3, 3)
colnames(data) <- c("approach", "best", "worst")
data[1,] <- c("a", 1.8, 157.0)
data[2,] <- c("b", 592.3, 1342.6)
data[3,] <- c("c", 613.1, 3744.1)
data <- as.data.frame(data)
data <- melt(data, id="approach")
p <- ggplot(data, aes(x=approach, y=value, fill=variable)) +
geom_bar(position="dodge", stat="identity")
p
谢谢.
答
您需要在数值列中输入数值,目前您有以下因素:
You need to have numerical values in your value-column, currently you have factors:
library(reshape)
library(ggplot2)
data <- matrix(1:9, 3, 3)
colnames(data) <- c("approach", "best", "worst")
data[1,] <- c("a", 1.8, 157.0)
data[2,] <- c("b", 592.3, 1342.6)
data[3,] <- c("c", 613.1, 3744.1)
data <- as.data.frame(data)
data <- melt(data, id="approach")
data$value = as.double(levels(data$value))[data$value] # <-- converting
p <- ggplot(data, aes(x=approach, y=value, fill=variable)) +
geom_bar(position="dodge", stat="identity")
p