我想绘制赞成票与瑞士语言边界距离的关系,其中德国一侧的城市的投票结果具有负距离,非德国城市的投票结果具有正距离。 然而,我得到的图总是以正比例投影所有垃圾箱。
相关数据(Vote_264_1980)是这样构建的:
是投票264 | 与其他语言的下一个城市的距离 |
---|---|
22.8 | -68.7 |
21.8 | -70.6 |
50.9 | 89.6 |
我使用了以下 R 代码:
Vote_264_1980 <- mutate(Vote_264_1980,
Distance_bin = cut(Distance_to_next_Municipality_of_other_language,
breaks = seq(-120, 120, by = 5)))
# Berechnung der Mittelwerte für Ja-Stimmen in jedem Bin
binned_data <- Vote_264_1980 %>%
group_by(Distance_bin, Deutschsprachig) %>%
summarize(mean_yesVotes264 = mean(yesVotes264))
# Erstellung des binned scatter plots mit Linien für negative und positive Distanz
ggplot(data = binned_data, aes(x = as.numeric(Distance_bin), y = mean_yesVotes264, color = Deutschsprachig)) +
geom_point() +
geom_smooth(data = subset(binned_data, as.numeric(Distance_bin) < 0),
aes(group = 1),
method = "loess",
se = FALSE,
linetype = "dashed") +
geom_smooth(data = subset(binned_data, as.numeric(Distance_bin) >= 0),
aes(group = 1),
method = "loess",
se = FALSE,
linetype = "solid") +
labs(x = "Distanz zur Sprachgrenze (km)",
y = "Mittlere Ja-Stimmen bei Abstimmung 264",
color = "Deutschsprachig",
title = "Binned Scatter Plot: Beziehung zwischen Distanz zur Sprachgrenze und Mittleren Ja-Stimmen") +
theme_minimal() +
scale_x_continuous(breaks = seq(-120, 120, by = 20),
labels = function(x) ifelse(x < 0, paste0(x, " km"), paste0("+", x, " km")))
由于某种原因,我得到的图的 X 轴值从 0 到 45: 我的剧情
我真的很感激任何帮助!
我设法通过将距离四舍五入到最接近的自然数(对于 5 的间隔,简单地四舍五入到最接近的 5),然后取同一舍入距离的所有 yesVotes264 的平均值来获得想要的结果。
这样,绘图现在在 X 轴上显示区间 -120 - 120。
感谢您的帮助!