我試圖同時使用twoway
來繪製兩個座標軸。一個軸使用變量route
來替換通常的符號,使用mlabel
和msymbol(none)
。另一個軸在繪圖區域中不需要特定的標籤,但理想情況下應該在圖例中鍵入「增量劑量」。Stata:具有多個軸的圖例項目的順序
使用legend(order)
規範創建圖例標籤時會出現不希望出現的結果。作爲編碼的圖例將第二個軸的符號作爲第三個有序的圖例項目。我希望代碼將第二個軸的符號作爲第五個項目。該問題可以通過爲未使用的第五個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"))