我使用以下代码绘制我的数据框d
(在下面提供):
ggplot(data=d, aes(x=ID, y=Value)) + geom_line()
我现在想要改变x轴的轴刻度。为此,我使用:
ggplot(data=d, aes(x=d$ID, y=d$Value)) +
geom_line() +
scale_x_discrete(breaks=1:8,
labels=c("05/11", "29/11", "11/12", "23/12",
"04/01", "16/01", "28/01", "09/02"))
我的数据框d
:
> str(d)
'data.frame': 10 obs. of 4 variables:
$ Value : num 0.021 0.0436 0.0768 0.0901 0.1128 ...
$ Statistic: Factor w/ 1 level "Variable": 1 1 1 1 1 1 1 1 1 1
$ ID : int 1 2 3 4 5 6 7 8 9 10
$ Variable : chr "Mean_Sigma0_VV" "Mean_Sigma0_VV" "Mean_Sigma0_VV" "Mean_Sigma0_VV" ...
> dput(d)
structure(list(Value = c(0.021008858735161, 0.0435905957091736,
0.0767780373205124, 0.0901182900951117, 0.11277978896612, 0.0990637045976107,
0.118897251291308, 0.10604101636234, 0.121525916187773, 0.104460360304768
), Statistic = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L), class = "factor", .Label = "Variable"), ID = 1:10, Variable = c("Mean_Sigma0_VV",
"Mean_Sigma0_VV", "Mean_Sigma0_VV", "Mean_Sigma0_VV", "Mean_Sigma0_VV",
"Mean_Sigma0_VV", "Mean_Sigma0_VV", "Mean_Sigma0_VV", "Mean_Sigma0_VV",
"Mean_Sigma0_VV")), .Names = c("Value", "Statistic", "ID", "Variable"
), row.names = c(NA, -10L), class = "data.frame")
答案 0 :(得分:0)
ID
是一个数字列,因此ggplot2使用连续比例,而不是离散比例:
ggplot(data=d, aes(x=ID, y=Value)) +
geom_line() +
scale_x_continuous(breaks=1:8,
labels=c("05/11", "29/11", "11/12", "23/12",
"04/01", "16/01", "28/01", "09/02"))
或者,如果您想使用离散比例,则需要将ID
转换为因子。但是,在这种情况下,ggplot2通常不会将单独的ID
值组合在一起,并将它们与一行连接起来。要实现这一点,您必须添加group = 1
(将所有内容放入同一组)。
d$ID <- factor(d$ID)
ggplot(data=d, aes(x = ID, y = Value, group = 1)) +
geom_line() +
scale_x_discrete(breaks=1:8,
labels=c("05/11", "29/11", "11/12", "23/12",
"04/01", "16/01", "28/01", "09/02"))
你可以看到这两个数字差不多但不完全一样。超出数据限制的轴范围扩展对于离散和连续标度的工作略有不同。此外,连续刻度具有较小的网格线,而离散刻度则没有。