2016-01-15 67 views
5

我试图用一个国家的同一回归的估计和置信区间生成一个图。我使用dplyrgroup_by(country)运行回归,然后我将所有结果汇总到broomtidy()数据框中。ggplot2:geom_pointrange()facet_grid()与coord_flip()和自由标度

当创建从这个数据帧(称为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") 

here is the graph I get

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

+2

如何使用'geom_errorbarh',而不是'coord_flip'得到的水平误差棒? – aosmith

+0

这是个好主意。谢谢!之前我曾尝试过,看起来不太好,但我刚刚看到您可以修改'geom_errorbarh'的'height',并添加一个'geom_point'来获得我正在寻找的东西。我现在会给你的建议添加一个答案。再次感谢! –

回答

3

根据aosmith的建议,我使用geom_errorbarh并删除了coord_flip()。我还必须将geom_errorbarhheight设置为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") 

而产生的图像

enter image description here

相关问题