如何在Stata twoway图中将指定图例文本设置为蓝色?
Stata中设置图例文本颜色的解决方案
我的同事使用以下Stata代码生成了一张图表,希望将图例中的文本“By eliminating lead”设置为与hlo_expost1一致的蓝色,但尝试多种legend()选项设置均未成功:
#delimit ; tw (pccapsym rank hlo rank hlo_expost1, msym(none) lcolor(blue)) (sc rank hlo, mlabel(hlos1) msymbol(none) mlabpos(9)) (sc rank hlo_expost1, mlabel(effect1s1) msymbol(none) mlabpos(3) mlabc(blue)) (sc rank left, mlabel(countryname) msymbol(none) mlabpos(3) mlabcolor(black)), ysc(off) xsc(range(650)) legend(order(2 "Status quo" 3 "By eliminating lead")) ylab(,nogrid) xlab(0(100)600,nogrid) xline(500) xsize(4) ysize(6) xtitle("World Bank, Harmonized Learning Outcomes", margin(20 0 0 0) height(5)) ; #delimit cr
要实现单独设置某一项图例文本的颜色,需在legend()选项内针对指定条目使用labelcolor()子选项,具体修改方法如下:
修改后的核心代码
将原legend()部分替换为:
legend(order(2 "Status quo" 3 "By eliminating lead", labelcolor(blue)))
完整修改代码
如果希望图例符号颜色也和hlo_expost1系列的蓝色保持统一,可以额外添加symcolor(blue),完整代码如下:
#delimit ; tw (pccapsym rank hlo rank hlo_expost1, msym(none) lcolor(blue)) (sc rank hlo, mlabel(hlos1) msymbol(none) mlabpos(9)) (sc rank hlo_expost1, mlabel(effect1s1) msymbol(none) mlabpos(3) mlabc(blue)) (sc rank left, mlabel(countryname) msymbol(none) mlabpos(3) mlabcolor(black)), ysc(off) xsc(range(650)) legend(order(2 "Status quo" 3 "By eliminating lead", labelcolor(blue) symcolor(blue))) ylab(,nogrid) xlab(0(100)600,nogrid) xline(500) xsize(4) ysize(6) xtitle("World Bank, Harmonized Learning Outcomes", margin(20 0 0 0) height(5)) ; #delimit cr
说明
labelcolor(blue)直接将第3项图例的文本设置为蓝色,与hlo_expost1系列的标签颜色匹配symcolor(blue)可同步设置图例符号的颜色,让整个图例条目与对应系列的视觉风格保持一致
内容的提问来源于stack exchange,提问作者Rory
相关产品推荐
相关产品推荐

