【发布时间】:2020-12-14 10:33:42
【问题描述】:
我想知道是否可以将线型(plotopts 参数,即点、破折号、实线等)叠加到它们对应的 CI(ciopt 参数,即颜色)上?
我用下面的例子来说明(请注意图例部分,只显示CI颜色,虽然可以插入order(3 "f=0's line type" 4 "f=1's line type")之类的东西来显示它们的线型符号,但它们不会叠加在它们对应的CI上)。如果有人能给我一些提示,将不胜感激。
/* using the example from UCLA data archive */
use https://stats.idre.ucla.edu/stat/data/logitcatcon, clear
logit y i.f##c.s, nolog
margins f, at(s=(20(5)70)) vsquish
/* plotting */
marginsplot, recast(line) recastci(rarea) ciopt(color(gs14) alwidth(none)) ci1opt(color(gs5) alwidth(none)) plotopts(lc(gs0) lpattern(dot)) plot1opts(lc(gs0) lpattern(solid)) legend(order(1 "f=0" 2 "f=1") rows(1))
【问题讨论】:
-
我不关注这个。从上图和运行代码来看,线型确实是虚线和实线。顺便说一句,我会为这样的图表应用透明度。
-
我仍在 Stata 14 上运行(它不支持透明度选项),我猜这会导致线条类型被 CI 颜色抑制(?)
-
我无法访问 Stata 14,只有 16 个,但您的图像显示点和实线,因此您似乎得到了您所要求的。在线条或点之前先放置区域通常是一种好习惯,
marginsplot似乎正在这样做,尽管我懒得检查代码。 -
我的意思是在图例的 CI 颜色上叠加线型(在图表的底部)。
-
我明白了。这很难。图例一对一地映射到显示的变量,因此您可以显示一片区域或一段线型,但据我所知,不能同时显示两者。不是你想要的答案,但在这里,而且很多时候,传说充其量只是一种必要的邪恶。我会丢失图例,并在绘图区域的曲线上方和下方放置直接标签
f = 0和f = 1,只要有空间(或者,自然地,更好的解释性文字解释 0 和 1 的含义);