我试图有一个图表显示一条线连接每个变量中的每个组的点。然而,似乎ggplot拒绝渲染这条线,我不知道为什么。
代码如下:
ggplot(DF_Compound, aes(color=MainThemes, y=value, x=Variable)) +
stat_summary(
fun.y="mean",
geom="point",
size=2,
) +
stat_summary(
fun.y="mean",
geom="Line",
size=1,
) +
ylim(0,9) +
ylab("") +
scale_y_continuous(breaks = c(1,2,3,4,5,6,7)) +
theme_minimal() +
scale_fill_discrete(guide = guide_legend()) +
theme(legend.position="bottom")
这是输出:
这就是我想要的(当然每个主题都有一行):
(为图片上的草率商店道歉)
MainThemes和Variable都是factors(如果有区别的话)。如果我去掉这些点,坐标系就是空的。我是不是忽略了什么?我见过有人用这种方式添加线条,似乎很有效。
编辑:试图提供我弄清楚的数据,问题似乎是“变量”是一个因素。此数据集的工作原理:
structure(list(MainThemes = c("F", "F", "F", "F", "F", "F", "F",
"F", "F", "F", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "G", "G", "G",
"G", "G", "G", "G", "G", "G", "G", "E", "E", "E", "E", "E", "E",
"E", "E", "E", "E", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "F", "F", "F", "F", "F",
"F", "F", "F", "F", "F", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C"), Variable = c(9, 5, 8, 2, 3, 7, 10, 1, 6, 4, 9, 5,
8, 2, 3, 7, 10, 1, 6, 4, 9, 5, 8, 2, 3, 7, 10, 1, 6, 4, 9, 5,
8, 2, 3, 7, 10, 1, 6, 4, 9, 5, 8, 2, 3, 7, 10, 1, 6, 4, 9, 5,
8, 2, 3, 7, 10, 1, 6, 4, 9, 5, 8, 2, 3, 7, 10, 1, 6, 4, 9, 5,
8, 2, 3, 7, 10, 1, 6, 4, 9, 5, 8, 2, 3, 7, 10, 1, 6, 4, 9, 5,
8, 2, 3, 7, 10, 1, 6, 4), value = c(3.33333333333333, 5.33333333333333,
5, 3.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333,
5.66666666666667, 4.66666666666667, 5.66666666666667, 1, 3.66666666666667,
3.33333333333333, 4, 5.33333333333333, 4.66666666666667, 1.33333333333333,
7, 6.66666666666667, 2, 4.33333333333333, 6.33333333333333, 1.66666666666667,
2.66666666666667, 2, 3.66666666666667, 2, 6.33333333333333, 3.33333333333333,
6, 2, 2, 2.33333333333333, 2, 4.66666666666667, 2.33333333333333,
5.33333333333333, 3, 6, 6, 2, 2, 2.33333333333333, 2, 4.66666666666667,
2.33333333333333, 5.33333333333333, 3, 6, 6, 2, 4, 3, 1.33333333333333,
4, 4.33333333333333, 4, 4.66666666666667, 3, 4, 4, 4, 1, 4, 3,
5, 5.33333333333333, 6, 4.33333333333333, 5.66666666666667, 5.33333333333333,
6.66666666666667, 4, 5.33333333333333, 4.66666666666667, 6.33333333333333,
4.66666666666667, 6.33333333333333, 6, 5.66666666666667, 7, 5,
4.33333333333333, 1.33333333333333, 3.33333333333333, 7, 3.33333333333333,
7, 5, 5.33333333333333, 4.66666666666667, 4.66666666666667, 4,
2, 4.66666666666667, 1.66666666666667, 4.33333333333333, 6.33333333333333,
6.33333333333333, 5.33333333333333)), row.names = c(NA, -100L
), class = c("tbl_df", "tbl", "data.frame"))
这一个没有:
Variables are vectors:
structure(list(MainThemes = c("F", "F", "F", "F", "F", "F", "F",
"F", "F", "F", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "G", "G", "G",
"G", "G", "G", "G", "G", "G", "G", "E", "E", "E", "E", "E", "E",
"E", "E", "E", "E", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "F", "F", "F", "F", "F",
"F", "F", "F", "F", "F", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C"), Variable = c("VI", "VE", "VH", "VB", "VC", "VG", "VJ",
"VA", "VF", "VD", "VI", "VE", "VH", "VB", "VC", "VG", "VJ", "VA",
"VF", "VD", "VI", "VE", "VH", "VB", "VC", "VG", "VJ", "VA", "VF",
"VD", "VI", "VE", "VH", "VB", "VC", "VG", "VJ", "VA", "VF", "VD",
"VI", "VE", "VH", "VB", "VC", "VG", "VJ", "VA", "VF", "VD", "VI",
"VE", "VH", "VB", "VC", "VG", "VJ", "VA", "VF", "VD", "VI", "VE",
"VH", "VB", "VC", "VG", "VJ", "VA", "VF", "VD", "VI", "VE", "VH",
"VB", "VC", "VG", "VJ", "VA", "VF", "VD", "VI", "VE", "VH", "VB",
"VC", "VG", "VJ", "VA", "VF", "VD", "VI", "VE", "VH", "VB", "VC",
"VG", "VJ", "VA", "VF", "VD"), value = c(3.33333333333333, 5.33333333333333,
5, 3.33333333333333, 5.33333333333333, 5.33333333333333, 5.33333333333333,
5.66666666666667, 4.66666666666667, 5.66666666666667, 1, 3.66666666666667,
3.33333333333333, 4, 5.33333333333333, 4.66666666666667, 1.33333333333333,
7, 6.66666666666667, 2, 4.33333333333333, 6.33333333333333, 1.66666666666667,
2.66666666666667, 2, 3.66666666666667, 2, 6.33333333333333, 3.33333333333333,
6, 2, 2, 2.33333333333333, 2, 4.66666666666667, 2.33333333333333,
5.33333333333333, 3, 6, 6, 2, 2, 2.33333333333333, 2, 4.66666666666667,
2.33333333333333, 5.33333333333333, 3, 6, 6, 2, 4, 3, 1.33333333333333,
4, 4.33333333333333, 4, 4.66666666666667, 3, 4, 4, 4, 1, 4, 3,
5, 5.33333333333333, 6, 4.33333333333333, 5.66666666666667, 5.33333333333333,
6.66666666666667, 4, 5.33333333333333, 4.66666666666667, 6.33333333333333,
4.66666666666667, 6.33333333333333, 6, 5.66666666666667, 7, 5,
4.33333333333333, 1.33333333333333, 3.33333333333333, 7, 3.33333333333333,
7, 5, 5.33333333333333, 4.66666666666667, 4.66666666666667, 4,
2, 4.66666666666667, 1.66666666666667, 4.33333333333333, 6.33333333333333,
6.33333333333333, 5.33333333333333)), row.names = c(NA, -100L
), class = c("tbl_df", "tbl", "data.frame"))
将变量转换为数字是一种变通方法,但如果可能的话,我真的希望避免它。
谢谢!
1条答案
按热度按时间qoefvg9y1#
如果有一个离散的x轴,则需要添加
MainThemes
作为分组变量:需要注意的其他几点是:
scale_y_continuous
,因此可以将NULL
作为第一个参数传递给scale_y_continuous
以删除轴标签,而不是使用ylab("")
。scale_fill_discrete
在这里不做任何事情,因为您没有使用填充比例。但是,将其更改为scale_color_discrete(guide = guide_legend())
也不会做任何事情,因为这是默认设置。geom_line
中的size
参数已被弃用-如果您的ggplot版本是最新的,则应该使用linewidth
。value
:如果你有足够的空间,你甚至可以通过使用分面箱线图或小提琴图来更好地了解数据的范围: