我正在尝试生成一个图表,其中包含多个国家/地区的同一回归的估计值和置信区间。我使用dplyrgroup_by(country)运行回归,然后将所有结果汇总到具有broomtidy()的数据框中。

从此数据框(称为bycountry1)创建图形时,我运行以下代码:

ggplot(bycountry1, aes(x = country, y = estimate, ymin = estimate - std.error * 2, ymax = estimate + std.error * 2)) +
   geom_hline(yintercept = 0, colour = "black", lty = 2) +
   geom_pointrange() +
   coord_flip() + facet_grid(. ~ term, scales = "free")




这就是我想要的,除了我希望每个框的比例都不同,以便所有框看起来都更像religious1框。由于那是变化最大的那个,它支配了比例,然后在其他大多数框中,您看不到变化。如上面的代码所示,我确实在scales = "free"中指出了facet_grid(),并且尝试了所有变体(也使用了facet_wrap()),但我无法使用它。

最佳答案

按照aosmith的建议,我使用geom_errorbarh并删除了coord_flip()使其生效。我还必须将heightgeom_errorbarh设置为0,并为估算添加一个geom_point。这是代码:

ggplot(bycountry1, aes(y = country, x = estimate, xmin = estimate - std.error * 2, xmax = estimate + std.error * 2)) +
  geom_vline(xintercept = 0, colour = "black", lty = 2) +
  geom_point() +
  geom_errorbarh(height = 0) +
  facet_grid(. ~ term, scales = "free")


以及得到的图像

r - ggplot2:具有coord_flip()和自由刻度的geom_pointrange()facet_grid()-LMLPHP

07-28 06:51