如何更改x轴限制ggplot2 r
how to change x-axis limits ggplot2 r
我想使用 ggplot 条形图为 x 轴设置限制。整个情节没问题,但是当我使用 ylim(1,6) (这些是我需要的限制)时,条形消失了。
数据:
var.A <- as.numeric(c(1:13))
var.B <- c(4.351833, 2.938000, 4.726465, 3.747162, 3.720737, 4.297117, 4.304500, 4.061277, 4.595236, 4.105444, 3.701684, 3.523563, 4.170000)
df <- data.frame(var.A,var.B)
Ggplot代码:
ggplot(df, aes(x=factor(var.A), y=var.B)) +
geom_bar(position=position_dodge(), stat="identity", fill="#fff68f", colour="darkgrey", width = 0.4) +
coord_flip()+
xlab("") +
ylab("") +
scale_x_discrete(labels=c("aaaaaaa aaaaa","bbbbb bbb bbbb","cccc ccc","dddd dd ddddd",
"eee e eeeee e ee","ffffffff","gggggggg","hhhhhhh","iiii",
"jjjjjj","kkkkkkk","llllll","mmmmmmmm"))
当我添加时:ylim(1,6) +
事情出错了。
还有一件事。每个条形的颜色设置为 fill="#fff68f"
。有没有改变一个条的颜色的解决方案,例如从顶部开始的第一个我想要不同,即 #ee2c2c
.
因为您使用了 coord_flip()
,所以您可以使用 scale_y_continuous(expand=c(0,0),limits=c(1,6),oob = rescale_none)
设置 x 轴的限制,并且可以使用 scale_fill_manual(values = c("#ee2c2c",...)
.
设置每个条形的颜色
因此,如果您想手动设置条形的颜色,首先需要创建名称向量并将其插入到数据框中:
names <- c("aaaaaaa aaaaa","bbbbb bbb bbbb","cccc ccc","dddd dd ddddd",
"eee e eeeee e ee","ffffffff","gggggggg","hhhhhhh","iiii",
"jjjjjj","kkkkkkk","llllll","mmmmmmmm")
var.A <- as.numeric(c(1:13))
var.B <- c(4.351833, 2.938000, 4.726465, 3.747162, 3.720737, 4.297117, 4.304500, 4.061277, 4.595236, 4.105444, 3.701684, 3.523563, 4.170000)
df <- data.frame(var.A,var.B,names)
要在 ggplot 中对变量名称和颜色进行排序,您需要将向量结构从字符更改为因子(以便获得级别)。
var.names = factor(df$names,
levels = c("aaaaaaa aaaaa","bbbbb bbb bbbb","cccc ccc","dddd dd ddddd", "eee e eeeee e ee","ffffffff","gggggggg","hhhhhhh","iiii", "jjjjjj","kkkkkkk","llllll","mmmmmmmm"), ordered=T)
所以你的代码看起来像:
ggplot(df, aes(x=var.names, y=var.B, fill=as.factor(var.names))) +
geom_bar(position=position_dodge(), stat="identity", width = 0.4) +
coord_flip()+
scale_y_continuous(expand=c(0,0),limits=c(1,6),oob = rescale_none) +
xlab("") +
ylab("") +
scale_fill_manual(values = c(c(rep("#fff68f",12)),"#ee2c2c"))
输出为
我想使用 ggplot 条形图为 x 轴设置限制。整个情节没问题,但是当我使用 ylim(1,6) (这些是我需要的限制)时,条形消失了。
数据:
var.A <- as.numeric(c(1:13))
var.B <- c(4.351833, 2.938000, 4.726465, 3.747162, 3.720737, 4.297117, 4.304500, 4.061277, 4.595236, 4.105444, 3.701684, 3.523563, 4.170000)
df <- data.frame(var.A,var.B)
Ggplot代码:
ggplot(df, aes(x=factor(var.A), y=var.B)) +
geom_bar(position=position_dodge(), stat="identity", fill="#fff68f", colour="darkgrey", width = 0.4) +
coord_flip()+
xlab("") +
ylab("") +
scale_x_discrete(labels=c("aaaaaaa aaaaa","bbbbb bbb bbbb","cccc ccc","dddd dd ddddd",
"eee e eeeee e ee","ffffffff","gggggggg","hhhhhhh","iiii",
"jjjjjj","kkkkkkk","llllll","mmmmmmmm"))
当我添加时:ylim(1,6) +
事情出错了。
还有一件事。每个条形的颜色设置为 fill="#fff68f"
。有没有改变一个条的颜色的解决方案,例如从顶部开始的第一个我想要不同,即 #ee2c2c
.
因为您使用了 coord_flip()
,所以您可以使用 scale_y_continuous(expand=c(0,0),limits=c(1,6),oob = rescale_none)
设置 x 轴的限制,并且可以使用 scale_fill_manual(values = c("#ee2c2c",...)
.
因此,如果您想手动设置条形的颜色,首先需要创建名称向量并将其插入到数据框中:
names <- c("aaaaaaa aaaaa","bbbbb bbb bbbb","cccc ccc","dddd dd ddddd",
"eee e eeeee e ee","ffffffff","gggggggg","hhhhhhh","iiii",
"jjjjjj","kkkkkkk","llllll","mmmmmmmm")
var.A <- as.numeric(c(1:13))
var.B <- c(4.351833, 2.938000, 4.726465, 3.747162, 3.720737, 4.297117, 4.304500, 4.061277, 4.595236, 4.105444, 3.701684, 3.523563, 4.170000)
df <- data.frame(var.A,var.B,names)
要在 ggplot 中对变量名称和颜色进行排序,您需要将向量结构从字符更改为因子(以便获得级别)。
var.names = factor(df$names,
levels = c("aaaaaaa aaaaa","bbbbb bbb bbbb","cccc ccc","dddd dd ddddd", "eee e eeeee e ee","ffffffff","gggggggg","hhhhhhh","iiii", "jjjjjj","kkkkkkk","llllll","mmmmmmmm"), ordered=T)
所以你的代码看起来像:
ggplot(df, aes(x=var.names, y=var.B, fill=as.factor(var.names))) +
geom_bar(position=position_dodge(), stat="identity", width = 0.4) +
coord_flip()+
scale_y_continuous(expand=c(0,0),limits=c(1,6),oob = rescale_none) +
xlab("") +
ylab("") +
scale_fill_manual(values = c(c(rep("#fff68f",12)),"#ee2c2c"))
输出为