我正在尝试使用同时绘制两个轴twoway
。一个轴使用变量route
来替换使用mlabel
and的常用符号msymbol(none)
。另一个轴不需要绘图区域中的特定标签,但理想情况下应在图例中键入“Incr. Dose”。
使用legend(order)
规范创建图例标签时会出现不希望的结果。编码的图例具有第二个轴的符号作为第三个有序图例项。我希望代码将第二个轴的符号作为第 5 项。可以通过为未使用的 5th 添加虚拟类别route
并使用图形编辑器手动移动符号来解决此问题。我想知道为什么该legend(order)
选项会以这种方式运行,是否有一些交互,mlabel
或者msymbol(none)
是否有编码解决方案可用于重复应用。
*create data
clear
set seed 42
set obs 50
gen cuml_dose = rnormal(0,1) *10 + 100
sort cuml_dose
gen interval = [_n]
gen id = 1
gen incr_dose =0
replace incr_dose = cuml_dose[_n+1] - cuml_dose if [_n] > 1
gen route = rpoisson(1)
tab route,m
*create problem graph
sort interval
twoway scatter cuml_dose interval, mlabel(route) msymbol(none) yaxis(1) || ///
scatter incr_dose interval, yaxis(2) ///
legend(on) legend(order(0 "0=oral" 1 "1=IV" 2 "2=IM" 3 "3=patch"))
*partial solution
twoway scatter cuml_dose interval, mlabel(route) msymbol(none) yaxis(1) || ///
scatter incr_dose interval, yaxis(2) ///
legend(on) legend(order(0 "0=oral" 1 "1=IV" 2 "2=IM" 3 "3=patch" 4 "Incr. dose"))