【发布时间】:2023-03-16 05:51:01
【问题描述】:
我知道这个问题已经回答过几次here 和here。关键点似乎是在aes 中包含参数label。但是,对我来说,ggplot 不接受label 作为aes 中的参数。我尝试在 aes 中使用通用函数labels,如下所示,但这无法为点创建标签,尽管我能够生成图表:
launch_curve <- ggplot(data = saltsnck_2002_plot_t,aes(x=weeks,y=markets, labels(c(1,2,3,4,5,6,7,8,9,10,11,12))))+
geom_line()+geom_point()+
scale_x_continuous(breaks = seq(0,12,by=1))+
scale_y_continuous(limits=c(0,50), breaks = seq(0,50,by=5))+
xlab("Weeks since launch")+ ylab("No. of markets")+
ggtitle(paste0(marker1,marker2))+
theme(plot.title = element_text(size = 10))
print(launch_curve)
有人知道解决这个问题的方法吗?我正在使用 R 版本 3.4.3。
已编辑以包含示例数据:
我用来绘制的数据在数据框saltsnck_2002_plot_t 中。 (12 行乘 94 列)。示例如下:
>saltsnck_2002_plot_t
11410008398 11600028960 11819570760 11819570761 12325461033 12325461035 12325461037
Week1 3 2 2 1 2 2 1
Week2 6 16 10 1 3 2 2
Week3 11 41 13 10 3 3 2
Week4 15 46 14 14 3 4 4
Week5 15 48 15 14 3 4 4
Week6 27 48 15 15 3 4 4
Week7 31 50 15 15 3 4 5
Week8 33 50 16 16 5 5 6
Week9 34 50 18 16 5 5 6
Week10 34 50 21 19 5 5 6
Week11 34 50 23 21 5 5 6
Week12 34 50 24 23 5 5 6
我实际上是通过移动数据框的列来循环绘制图形。这个数据框是转置操作的结果,因此奇怪的行和列名。第一列的图表如下图所示。并且对我之前的帖子进行了更正,我需要将列中的值而不是 c(1,2,3,4,5,6,7,8,9,10,11,12) 捕获为数据标签。
【问题讨论】:
-
您确定
labels(c(1,2,3,4,5,6,7,8,9,10,11,12))的语法正确吗?dput对可重复数据也会有所帮助。 -
关键是使用
geom_text,就像您链接的答案一样。请包含来自saltsnck_2002_plot_t的一些数据,以使您的问题可重现。