我想让我在x轴上的刻度看起来像这样(但不需要破折号)
3(12) - 5(20) - 7(28) - 9(36) - 11(44) - 13(52)
原始图是
用
制作
n.clusters mean.cluster mean.bucket variable value
1 3 21.64790 21.49858 sd.cluster 5.643380
2 5 21.63516 21.54975 sd.cluster 4.369756
3 7 21.55446 21.49889 sd.cluster 3.643280
4 9 21.59585 21.57022 sd.cluster 3.237870
5 11 21.63110 21.58452 sd.cluster 3.012060
6 13 21.55224 21.56104 sd.cluster 2.643777
7 3 21.64790 21.49858 sd.bucket 5.648886
8 5 21.63516 21.54975 sd.bucket 4.397690
9 7 21.55446 21.49889 sd.bucket 3.654752
10 9 21.59585 21.57022 sd.bucket 3.262954
11 11 21.63110 21.58452 sd.bucket 3.023834
12 13 21.55224 21.56104 sd.bucket 2.716441
ggplot(data, aes(n.clusters, value, shape=variable, group=variable)) +
geom_line(size = 1) +
geom_point(size = 3.5) +
scale_x_continuous(breaks = seq(1, 13, 2)) +
scale_shape_discrete(solid=F,
name = "Variable",
breaks = c("sd.cluster", "sd.bucket"),
labels = c("sd.cluster", "sd.bucket")) +
theme_bw() +
theme(axis.text=element_text(size=16),
axis.title=element_text(size=16,face="bold")) +
labs(x = "Number of cluster",
y = "Value")
如上所述,我对代码进行了一些更改 https://github.com/hadley/ggplot2/issues/501
并且最多得到了这些,但没有达到我想要的效果。
ggplot(data = mu.est.summary.long, aes(n.clusters, value, shape=variable, group=variable)) +
geom_line(size = 1) +
geom_point(size = 3.5) +
scale_x_discrete(breaks = c("3","5","7","9","11","13"),
labels = c("3(12)", "5(20)", "7(28)", "9(36)", "11(44)", "13(52)") +
scale_shape_discrete(solid=F,
name = "Variable",
breaks = c("sd.cluster", "sd.bucket"),
labels = c("sd.cluster", "sd.bucket")) +
theme_bw() +
theme(axis.text=element_text(size=16),
axis.title=element_text(size=16,face="bold")) +
labs(x = "Number of cluster",
y = "Value")
scale_x_discrete
内:
既不使用limits=c(levels(n.clusters$data)
也不breaks=c()
也不使用breaks= seq()
也不起作用。 R一直说缺少什么......我错过了什么?
感谢您的帮助。
答案 0 :(得分:6)
使用scale_x_discrete
时,请确保x轴的变量不连续。如果使用数字标记x轴,则R将以连续方式读取它们,您需要指定as.factor(df$name)
以使用离散轴。