如何绘制具有负 x 轴值和正 x 轴值的分箱散点图?

问题描述 投票:0回答:1

我想绘制赞成票与瑞士语言边界距离的关系,其中德国一侧的城市的投票结果具有负距离,非德国城市的投票结果具有正距离。 然而,我得到的图总是以正比例投影所有垃圾箱。

相关数据(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: 我的剧情

我真的很感激任何帮助!

r ggplot2 plot scatter-plot
1个回答
0
投票

我设法通过将距离四舍五入到最接近的自然数(对于 5 的间隔,简单地四舍五入到最接近的 5),然后取同一舍入距离的所有 yesVotes264 的平均值来获得想要的结果。

这样,绘图现在在 X 轴上显示区间 -120 - 120。

感谢您的帮助!

© www.soinside.com 2019 - 2024. All rights reserved.