Stata 15.1中如何让堆叠条形图图例与堆叠变量顺序一致
解决Stata堆叠条形图图例与堆叠顺序不匹配的问题
我明白你遇到的困扰了——堆叠条形图的层级顺序(从下到上是variable4→variable3→variable2→variable1)和图例的排列顺序(从左到右是variable1→variable2→variable3→variable4)正好相反,想要让两者对齐其实很简单,这里有两种实用的解决思路:
方法1:直接调整图例的显示顺序
在Stata的graph bar命令里,图例默认是按照你输入变量的顺序排列的。假设你当前的变量输入顺序是supplier customer employee enviro(对应variable4到variable1),那每个变量对应的图例项编号分别是1(supplier)、2(customer)、3(employee)、4(enviro)。你可以通过legend(order())选项强制指定图例顺序,让它和堆叠顺序完全匹配:
graph bar (asis) supplier customer employee enviro, /// over(year, lab(angle(90))) /// legend(order(1 2 3 4)) // 按变量输入顺序排列图例,和堆叠的从下到上顺序一致
如果你的图例是因为之前添加了reverse参数才变成反向的,直接去掉legend(reverse)也能快速解决问题。
方法2:反转变量输入顺序并调整堆叠方向
如果你更倾向于保持图例默认的variable1到variable4顺序,同时让堆叠层级和图例对应,可以把变量输入顺序改成enviro employee customer supplier,再加上stack(reverse)选项反转堆叠方向:
graph bar (asis) enviro employee customer supplier, /// over(year, lab(angle(90))) /// stack(reverse) // 让堆叠顺序变为从下到上variable4→variable3→variable2→variable1
这样堆叠的从上到下顺序就和图例的从左到右顺序完全对应了,视觉上也更协调。
试试这两种方法,应该都能完美解决你的问题!
内容的提问来源于stack exchange,提问作者birch




