你如何在 Stata 中使用 -graph hbar- 对齐标签?

How do you align labels using -graph hbar- in Stata?

我想在视觉上对齐“猫”和“苹果”的标签,使它们出现在同一“行”上,并为“狗”和“苹果”做同样的事情,而不是让动物标签出现在水果标签列表的中间。这可能使用 graph hbar?

input str10(fruit animal) float value
"Apples"    "Cats" 31.8
"Bananas"   "Cats" 16.7
"Mangos"    "Cats" 17.9
"Pears"     "Cats" 18.1
"Apples"    "Dogs" 1.6
"Bananas"   "Dogs" 4.3
"Mangos"    "Dogs" 4.4
end

graph hbar (asis) value, over(fruit) over(animal) nofill

红色箭头显示我想要动物标签的位置。

我也觉得应该有一种简单(/更容易)的方法来做到这一点。我在图形编辑器中得到了我认为你想要的东西(见下文),这是 .grec 文件的内容:

StataFileTM:00001:01100:GREC:                          :
00006:00006:00001:
*! classname: hbargraph_g
*! family: bar
*! date:  2 Jun 2021
*! time: 21:41:23
*! graph_scheme: cleanplots
*! naturallywhite: 1
*! end

// File created by Graph Editor Recorder.
// Edit only if you know what you are doing.

.supaxis.add_ticks 90 `"Cats"', tickset(major)
// supaxis edits

.supaxis.major.num_rule_ticks = 0
.supaxis.edit_tick 3 90 `"Cats"', tickset(major)
// supaxis edits

.supaxis.add_ticks 30 `"Dogs"', tickset(major)
// supaxis edits

.supaxis.major.num_rule_ticks = 0
.supaxis.edit_tick 4 30 `"Dogs"', tickset(major)
// supaxis edits

.supaxis.major.delete_tick 1
// supaxis edits

.supaxis.major.delete_tick 1
// supaxis edits


// <end>

不幸的是,我不确定这对你是否有太大帮助,但这是我现在能做到的最好的(希望总比没有好!)。

为了让它工作,我进入了图形编辑器,选择了 edit/add 个单独刻度的选项,然后在 y 轴上的点 90 处为 'Cats' 添加了一个,并且为 'Cats' 添加了一个对于第 30 点的 'Dogs'。然后我删除了 Stata 自动创建的另外两个 y 轴标签。我无法将 .grec 文件附加到此 post,但您可以将以上内容复制到您选择的文本编辑器中。

仅供参考,.grec 文件默认保存在 Stata 在 personal 目录中查找的 grec 文件夹中。如果您不知道它在哪里,您可以通过在您的控制台中输入 sysdir 来找到它;如果你没有,你可以手动创建该路径。