r - 更改轴标签和刻度标签的字体和位置的问题
问题描述
我有以下代码!
我正在尝试做三件事:
- 更改X/Y 轴与其各自标签之间的距离,并使图形标题居中
- 将 X 轴上刻度标签的旋转角度更改为 45 度
- 加粗x 和 y 轴标签以及图例标题的字体
positiveplot = ggplot(positiveaffect, aes(x=factor(Time), y=Scores, fill = Group)) + geom_boxplot(outlier.shape = NA) + labs(title="Change in self-rated positive affect", x="Time", y = "Positive Affect Score")
+ theme(legend.title = element_text(face = "bold"), plot.title = element_text(hjust = 0.5), axis.text.x = element_text((vjust = -2), angle = 45), axis.text.y = element_text(vjust = -2)) + scale_x_discrete(labels=labelspositive) + theme_classic()
我得到的输出如下:
如果有人能帮我一把,我将不胜感激!
最小的可重现示例:
structure(list(Group = c("SH", "SH", "SH", "SH", "SH", "SH",
"SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH",
"SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH",
"SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH",
"SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH",
"SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH",
"SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH",
"SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH", "SH",
"SH", "SH", "SH", "HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC",
"HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC",
"HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC",
"HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC",
"HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC",
"HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC", "HC",
"HC", "HC", "HC", "HC", "HC", "HC"), Time = c(1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3), Scores = c(18, 24, 31, 11, 14, 23, 17, 32, 19, 10,
35.6378909726158, 16, 22, 19, 19, 23, 20, 34, 17, 29, 12, 20,
16, 30, 26, 18, 21, 20, 15, 28, 29.3521832998335, 16, 10, 15,
17, 21, 14, 23, 12, 28, 17, 22, 13, 17, 13, 17, 16, 18, 19, 11,
17, 16, 24, 20, 22, 19, 18, 18, 15, 28.0883375096763, 20, 10,
11, 13, 10, 28.0883375096763, 16, 11, 22, 10, 16, 10, 13, 12,
16, 16, 15, 17, 10, 10, 10, 10, 13, 10, 18, 24, 26, 41, 25, 32,
13, 13, 28, 10, 24, 32, 36, 17, 16, 25, 38, 27, 28, 18, 14, 18,
30, 27, 24, 19, 33.2978283948586, 24, 24, 14, 20, 20, 10, 22,
15, 12, 24, 20, 26, 21, 20, 17, 11, 24, 10, 21, 24, 27, 22, 34.0925216652814,
24, 25, 12, 15, 24, 18, 23, 27, 14, 13, 11, 21, 25, 20, 22, 15,
11, 17, 10, 20, 27), ID = c("1222", "1992j", "1992i", "1592",
"1602", "1192", "1852", "1422", "1732", "1999", "1924", "1812",
"1752", "1762", "1782", "19992", "1892", "199912", "190", "171",
"199924", "1912", "199943", "1982", "1802", "3812", "199945",
"197", "1492", "1222", "1992j", "1992i", "1592", "1602", "1192",
"1852", "1422", "1732", "1999", "1924", "1812", "1752", "1762",
"1782", "19992", "1892", "199912", "190", "171", "199924", "1912",
"199943", "1982", "1802", "3812", "199945", "197", "1492", "1222",
"1992j", "1992i", "1592", "1602", "1192", "1852", "1422", "1732",
"1999", "1924", "1812", "1752", "1762", "1782", "19992", "1892",
"199912", "190", "171", "199924", "1912", "199943", "1982", "1802",
"3812", "199945", "197", "3212", "3182", "3162", "3412", "3492",
"1993", "363", "3362", "3122", "3152", "1997", "19995", "330",
"370", "3999", "19998", "375", "374", "373", "377", "379", "380",
"382", "3212", "3182", "3162", "3412", "3492", "1993", "363",
"3362", "3122", "3152", "1997", "19995", "330", "370", "3999",
"19998", "375", "374", "373", "377", "379", "380", "382", "3212",
"3182", "3162", "3412", "3492", "1993", "363", "3362", "3122",
"3152", "1997", "19995", "330", "370", "3999", "19998", "375",
"374", "373", "377", "379", "380", "382")), row.names = c(NA,
-155L), class = c("tbl_df", "tbl", "data.frame"))
# A tibble: 100 x 4
Group Time Scores ID
<chr> <dbl> <dbl> <chr>
1 SH 1 18 1222
2 SH 1 24 1992j
3 SH 1 31 1992i
4 SH 1 11 1592
5 SH 1 14 1602
6 SH 1 23 1192
7 SH 1 17 1852
8 SH 1 32 1422
9 SH 1 19 1732
10 SH 1 10 1999
解决方案
我相信这将解决您的问题:
positiveplot = ggplot(positiveaffect,
aes(x = factor(Time),
y = Scores,
fill = Group)) +
geom_boxplot(outlier.shape = NA) +
labs(title="Change in self-rated positive affect",
x="\nTime",
y = "Positive Affect Score\n") +
theme_classic() +
theme(legend.title = element_text(face = "bold"),
plot.title = element_text(hjust = 0.5, face = "bold"),
axis.text.x = element_text(vjust = -2, angle = 45, face = "bold"),
axis.text.y = element_text(vjust = -2, face = "bold"),
axis.title = element_text(face = "bold")) +
scale_x_discrete(labels = labelspositive)
推荐阅读
- java - 在java中缓存大约800万条记录的有效方法
- scala - Cats 中的效果抽象和并行执行
- java - 如何插入 RecyclerView 2 个视图(一个用于发送消息,一个用于接收消息)
- wpf - 带有动画的自定义动态大小的 wpf 按钮
- c++ - make_index_sequence 是如何工作的?
- angular - Angular 6 迁移 -.angular-cli.json 到 angular.json
- f# - 为什么 dotnet-fantomas 需要 FSharp.Core,Version=4.4.1.0?
- c++ - 插入指针数组删除先前的结果
- javascript - 在注入大部分html期间Angular2中的微调器
- javascript - 在外观不起作用的js中添加onlick事件侦听器