全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
2824 5
2021-04-20
悬赏 20 个论坛币 已解决
下面列出了我的代码和画出来的图像,问题有:
    1.我想让这个条形图在所有图和辅助线的最下面,像背景或者底纹一样。现在调了透明度但是还是会把辅助线挡住。
    2. 不知如何能把左右两个y轴的位置对调,我知道把bar的那个图放在最后一个画能把坐标轴也调换过来,但是这样它会把折线图也挡住。


我的代码是:
          twoway (bar number year, yaxis(2) bcolor(gs14%5)) ///
          (scatter growth year,yaxis(1) mc(orange_red) m(smcircle)) ///
           (line growth year,yaxis(1) lc(orange_red) lp(solid) ) ///
           , graphregion(color(white)) xli(0, lc(gs5) lp(shortdash)) xti("年份") yti("平均研发支出增长率")  ///
           ylabel(-0.1(0.05)0.2) legend(off)

目前画出的图形是:
1.png

最佳答案

经济学小小白 查看完整内容

twoway (bar number year, yaxis(2) bcolor(gs14%5)) /// (scatter growth year,yaxis(1) mc(orange_red) m(smcircle)) /// (line growth year,yaxis(1) lc(orange_red) lp(solid) ) /// , graphregion(color(white)) xti("年份") yti("平均研发支出增长率") /// ylabel(-0.1(0.05)0.2) legend(off) /// pci 10000 0 0 0 , lp(dash) 不知道行不行,你可以试一试
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2021-4-20 15:04:57
  twoway (bar number year, yaxis(2) bcolor(gs14%5)) ///
           (scatter growth year,yaxis(1) mc(orange_red) m(smcircle)) ///
            (line growth year,yaxis(1) lc(orange_red) lp(solid) ) ///
            , graphregion(color(white)) xti("年份") yti("平均研发支出增长率")  ///
            ylabel(-0.1(0.05)0.2) legend(off) ///
                        pci 10000 0 0 0 , lp(dash)
不知道行不行,你可以试一试
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-4-26 16:33:09
希望有经验的朋友能够提供帮助
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-6-7 14:27:03
经济学小小白 发表于 2021-4-27 10:10
twoway (bar number year, yaxis(2) bcolor(gs14%5)) ///
           (scatter growth year,yaxis(1) mc ...
您好,我想请教一下,怎么把7张图组合一起时,令第一张图单独一行,剩下六张排成两列,并且左右对齐呢?查了help gr combine 说对第一张图用graphregion(margin()),但是第一张图并没有变,应该怎么做呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-6-7 17:54:34
应统小白爱学习 发表于 2021-6-7 14:27
您好,我想请教一下,怎么把7张图组合一起时,令第一张图单独一行,剩下六张排成两列,并且左右对齐呢?查 ...
我已经给你解决了呀,你咋不知道看一下呢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2024-12-26 16:49:49
在Stata中,要解决你提出的两个问题——条形图作为背景以及调整左右y轴的位置以避免遮挡,可以通过以下步骤进行修改。

### 1. 条形图作为背景

为了让条形图看起来像是底纹而不遮挡其他元素(如辅助线),你可以尝试调整`bar`命令中的参数和使用层叠绘图技巧。下面是一个修改后的代码示例:

```stata
twoway (scatter growth year, yaxis(1) mc(orange_red) m(smcircle)) ///
       (line growth year, yaxis(1) lc(orange_red) lp(solid)) ///
       (bar number year, yaxis(2) bcolor(gs14%5) fstyle(transparency(80))) ///
       , graphregion(color(white)) xli(0, lc(gs5) lp(shortdash)) xti("年份") yti("平均研发支出增长率") ///
       ylabel(-0.1(0.05)0.2) legend(off)
```

这里的关键修改是`fstyle(transparency(80))`,这将条形图的填充风格设置为透明度80%。你可能需要根据实际效果调整透明度百分比。

### 2. 调换左右y轴的位置

要让右侧y轴(即第二y轴)显示在左侧,并避免遮挡,你可以通过先绘制折线和散点图,然后添加条形图的方式实现。但是,由于Stata的`twoway`命令默认将最后一个图层放在最上面,你需要额外的操作来确保条形图不遮挡其他元素。

一个可能的方法是在绘图后使用`yaxis(1) position(left)`和`yaxis(2) position(right)`显式指定每个轴的位置。但是,由于你的需求是相反的(即第二y轴在左侧),这需要更复杂的设计,Stata默认并不支持简单地交换坐标轴位置。

如果必须实现这一功能,并且你愿意使用额外的脚本来处理复杂的布局调整,你可以尝试先绘制所有图层,然后通过`graph display`命令和`yaxis()`选项来重新指定每个轴的位置。但是,请注意这可能需要对你的数据集进行一些额外的数据管理操作以适应新的绘图顺序。

### 总结

- 对于让条形图作为背景,增加透明度是一个有效的方法。
- 调换坐标轴位置则较为复杂,尤其是对于Stata默认行为的修改。你可能需要在保持当前逻辑的同时调整层叠顺序和透明度设置来达到接近的效果。如果必须进行这种布局变化,考虑使用更灵活的数据可视化工具如`ggplot2`(R语言)或`Matplotlib`(Python),这些工具有更加直接的方式处理坐标轴的定制。

希望这些建议能帮助你更好地调整你的图表!

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群