【发布时间】:2020-04-03 15:06:20
【问题描述】:
我正在使用 R 中的 ggplot2 包创建折线图。
我无法上传数据,因为我正在为我最后一年的项目进行研究。所以,我只能和你分享代码。
这是 APA 格式图的代码。
ggplot(accuracy_data,
aes(x = eccentricity, y = accuracy, group= speech_task)) +
geom_line(aes(linetype=speech_task)) +
scale_linetype_manual(values=c("twodash", "dotted", "solid")) +
geom_point(aes(shape = speech_task)) +
facet_grid(. ~ duration, labeller=labeller(duration = labels)) +
labs(x='Eccentricity (degrees of visual angle)', y='Accuracy of responses') +
theme_apa() +
theme(text=element_text(family='Times')) +
scale_x_continuous(breaks =c(5, 10, 15)) +
geom_errorbar(aes(ymin = accuracy - acc_sum$se , ymax = accuracy + acc_sum$se ), width=.1)
这会生成一个没有标题的图例,因此我请求帮助为图例创建标题。 我尝试了很多不同的选择,但没有一个有效。我什至没有收到错误消息。 这些是我到目前为止尝试过的代码:
legend_title <- "Speech Task"
scale_fill_manual(legend_title,values=c("Conversation", "N-Back", "Silence"))
guides(fill=guide_legend(title="Speech Task"))
scale_fill_discrete(name = "Speech Task",
labels = c("Conversation", "N-Back", "Silence"))
labs(fill="Speech Task")
我尝试的以下和最终代码是唯一在图表中产生变化的代码。但是因为我手动更改了点的形状和线型,所以导致制作了两个图例,并且只命名了线型图例。
labs(linetype= "Speech Task")
我可以帮忙吗:)
【问题讨论】:
-
你的
theme_apa来自哪个包?如果是jtools,请尝试jtools::theme_apa(legend.use.title = TRUE) -
@stefan 我确实将那个包用于
theme_apa()。所以,我只是尝试了一下,得到了这些错误:错误:无法将 ggproto 对象添加在一起。您是否忘记将此对象添加到 ggplot 对象中? -
我猜这是一个不同的问题。由于您没有提供任何数据,我检查了 mtcars 并添加了
legend.use.title = TRUE为我工作并添加了图例标题。但是,我在最后一行中删除了 geom_errobar 以及facet_grid中的标签器。 -
@stefan 不幸的是,我必须包含错误栏,因为它需要采用 APA 格式。此外,我花了很长时间才正确标记小平面网格,所以也需要那个位。抱歉,我没有分享数据,我认为这违反了道德准则。
-
并不意味着您必须放弃错误栏和标签。 (: 只是为了检查并使示例更容易一些。也许您可以使用
dput提供数据集示例。