Graph Stata图与yline

Graph Stata图与yline,graph,stata,Graph,Stata,我有以下双向散射,我希望绘制两条叶线,并让它们在设定的x值处开始和停止 clear all set more off sysuse auto twoway scatter mpg weight, /// connect(l) sort /// xline(2500) /// yline(25) 我想要一条2500的xline和两条yline一条从1500到2800,另一条从2900到4100。我还想让数据点连接起来。一种方法是使用辅助变量: clear all

我有以下
双向散射
,我希望绘制两条
叶线
,并让它们在设定的x值处开始和停止

clear all
set more off

sysuse auto

twoway scatter  mpg weight, /// 
    connect(l) sort ///
    xline(2500) ///
    yline(25)

我想要一条2500的
xline
和两条
yline
一条从1500到2800,另一条从2900到4100。我还想让数据点连接起来。

一种方法是使用辅助变量:

clear all
set more off

sysuse auto

*----- first yline -----

gen xli = .
replace xli = 1500 in 1
replace xli = 2800 in l

gen yli = 25

*----- second yline -----

gen xxli = .
replace xxli = 2900 in 1
replace xxli = 4100 in l

gen yyli = 20

*----- first xline -----

gen yyyli = .
replace yyyli = 15 in 1
replace yyyli = 40 in l

gen xxxli = 2500

*----- graph -----

twoway scatter  mpg weight, connect(l) sort || ///
    line yli xli || line yyli xxli /// ylines
        || line yyyli xxxli // xline
我怀疑这是最好的技术,但它似乎有效。您至少需要处理图例和线条颜色<代码>帮助和Stata手册在这方面有很多内容(还有更多内容)。

考虑一下:

sysuse auto 
scatter mpg weight, connect(l) sort || scatteri 25 1500 25 2800, recast(line)
scatteri
默认情况下,仅在所述坐标处添加点,即25 1500和25 2800,它们是
scatter
two-way
约定的(y,x)对,即首先命名y变量


recast()。要获得单独的线段,请添加单独的
scatteri
调用

好吧,为了斯塔塔的缘故,我希望有一个更简单的方法来做到这一点。你的方法很管用,但当我尝试连接这些线并在图表中排序时,这些线就不再显示了。有什么想法吗?我应该在问题中包括这一点,但我认为这些选项不会受到影响。请向我们展示一些重现问题的代码。我的猜测是,你已经说过了,
排序
,但我不能确定。策略并没有那么糟糕。只需创建绘制线条所需的数据。这是首要原则,一个更好的解决方案。