为什么这些实线出现在我在 ggplot 中的绘图下方?
Why are these solid lines appearing below my plot in ggplot?
这是我的代码:
pokemon <- read_csv("https://uwmadison.box.com/shared/static/hf5cmx3ew3ch0v6t0c2x56838er1lt2c.csv")
pokemon %>%
select(Name, type_1, Attack, Defense) %>%
mutate(AttDefRatio = Attack/Defense) %>%
ggplot(
aes(Name, AttDefRatio)
) +
geom_point(size = 0.5) +
facet_wrap(type_1 ~ .) +
theme(legend.position = "bottom")
对于这个家庭作业,我们正在处理分面,一切看起来都应该是这样,但是在图的底部有两条粗线。如果有人知道为什么会这样,那就太棒了!
这两行实际上是x轴标签,但是你可以用axis.text.x=element_blank()
删除它们:
pokemon %>%
select(Name, type_1, Attack, Defense) %>%
mutate(AttDefRatio = Attack/Defense) %>%
ggplot(
aes(Name, AttDefRatio)
) +
geom_point(size = 0.5) +
facet_wrap(type_1 ~ .) +
theme(legend.position = "bottom", axis.text.x=element_blank())
或者,如果您想通过在 facet_wrap
中设置为 free_x
来显示个人 Names
,然后在 theme
中更改文本大小。虽然在一张图上显示的信息很多,而且很难看到。
pokemon %>%
select(Name, type_1, Attack, Defense) %>%
mutate(AttDefRatio = Attack/Defense) %>%
ggplot(
aes(Name, AttDefRatio)
) +
geom_point(size = 0.5) +
facet_wrap(type_1 ~ ., ncol = 5, scales = "free_x") +
theme(legend.position = "bottom", axis.text.x=element_text(angle = 90, vjust = 0.5, hjust=1, size = 3))
这些是你的 x 轴标签。分面后的标签比可用的 space 长得多,因此它们重叠成一个大混乱。
可能的解决方案:
- 使用
coord_flip()
,这通常是解决长 x 轴标签的好方法
- 重新编码 x 变量标签以使其更短
- 使用
facet_wrap()
的 ncol
参数减少列数
- 通过折叠或删除案例较少的组来减少面的数量
我认为您的问题因每个方面列重复的每个 Pokémon 名称而变得更加复杂,即使每个方面实际上只出现了一个子集。您可以通过在 facet_wrap()
中设置 scales = "free_x"
来解决此问题,这样只有包含在每个方面的标签才会被包含。
这是我的代码:
pokemon <- read_csv("https://uwmadison.box.com/shared/static/hf5cmx3ew3ch0v6t0c2x56838er1lt2c.csv")
pokemon %>%
select(Name, type_1, Attack, Defense) %>%
mutate(AttDefRatio = Attack/Defense) %>%
ggplot(
aes(Name, AttDefRatio)
) +
geom_point(size = 0.5) +
facet_wrap(type_1 ~ .) +
theme(legend.position = "bottom")
对于这个家庭作业,我们正在处理分面,一切看起来都应该是这样,但是在图的底部有两条粗线。如果有人知道为什么会这样,那就太棒了!
这两行实际上是x轴标签,但是你可以用axis.text.x=element_blank()
删除它们:
pokemon %>%
select(Name, type_1, Attack, Defense) %>%
mutate(AttDefRatio = Attack/Defense) %>%
ggplot(
aes(Name, AttDefRatio)
) +
geom_point(size = 0.5) +
facet_wrap(type_1 ~ .) +
theme(legend.position = "bottom", axis.text.x=element_blank())
或者,如果您想通过在 facet_wrap
中设置为 free_x
来显示个人 Names
,然后在 theme
中更改文本大小。虽然在一张图上显示的信息很多,而且很难看到。
pokemon %>%
select(Name, type_1, Attack, Defense) %>%
mutate(AttDefRatio = Attack/Defense) %>%
ggplot(
aes(Name, AttDefRatio)
) +
geom_point(size = 0.5) +
facet_wrap(type_1 ~ ., ncol = 5, scales = "free_x") +
theme(legend.position = "bottom", axis.text.x=element_text(angle = 90, vjust = 0.5, hjust=1, size = 3))
这些是你的 x 轴标签。分面后的标签比可用的 space 长得多,因此它们重叠成一个大混乱。
可能的解决方案:
- 使用
coord_flip()
,这通常是解决长 x 轴标签的好方法 - 重新编码 x 变量标签以使其更短
- 使用
facet_wrap()
的 - 通过折叠或删除案例较少的组来减少面的数量
ncol
参数减少列数
我认为您的问题因每个方面列重复的每个 Pokémon 名称而变得更加复杂,即使每个方面实际上只出现了一个子集。您可以通过在 facet_wrap()
中设置 scales = "free_x"
来解决此问题,这样只有包含在每个方面的标签才会被包含。