专栏首页PyStaDataStata | 解决 graph 中 x 轴刻度重叠问题

Stata | 解决 graph 中 x 轴刻度重叠问题

提出问题

刚有朋友问我怎么调整 boxplot 中 x 轴标签,用上图重现了他的问题。换句话说,问题是如何解决 graph 中 x 轴重叠的问题。

分析思路

  1. 把图调整成水平(horizontal);
  2. 将 x 轴刻度倾斜,避免重叠;
  3. 更改 x 轴的刻度显示区间,这可以通过定义 x 轴值的 label 实现。

解决过程

方法一:调整为水平图

graph hbox y, over(year)

方法二:将 x 轴标签倾斜

graph box y, over(year, label(angle(45)))

方法三:调整刻度间距

forval y = 1990/2010 {
    if mod(`y', 5) {
        label def ylbl `y' `"{char 0xa0}"', add // 0xa0:NO-BREAK SPACE
    }
}
label val year ylbl
label li ylbl
graph box y, over(year)

简单解释代码中的 {char 0xa0},这是 SMCL(Stata Markup and Control Language) 语言,是 Stata 中的一种标记语言, help 文档大都是用它编写的。char 表示字符,0xa0 是 ASCII 编码的空格。所以这里实际是“偷梁换柱”,将 x 轴刻度每隔 5 个单位换为空格,这样绘制出来的图就实现了肉眼不可见的空白。

我刚开始也顺着这个思路考虑是否能通过 SMCL 语句更改 x 轴刻度的倾斜角度,但 SMCL 似乎没有并不能实现文本倾斜。对绘图中可用的 SMCL 语句,可自行 help text 查看。

附录:演示数据生成代码

clear
set obs 126
egen year = seq(), block(6) from(1990) to(2010)
set seed 2803
gen y = exp(rnormal())

参考资料

https://www.statalist.org/forums/forum/general-stata-discussion/general/1297758-axis-options-for-box-plot-how-can-i-reduce-number-of-labels-on-the-x-axis

本文分享自微信公众号 - PyStaData(gh_60f259052905),作者:mudaozzz

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Notes | 文本大数据信息提取方法

    本文为刊载于《经济学(季刊)》2019 年第 4 期上《文本大数据分析在经济学和金融学中的应用:一个文献综述》[1]的阅读笔记。原论文详细综述了文本大数据信息提...

    PyStaData
  • 文件管理工具Zotero入门介绍

    Zotero 是一款开源免费的文献管理软件,作为 Firefox 浏览器插件起家,在浏览器文献智能导入、PDF 元数据抓取方面具有优势。使用一段时间之后,发现用...

    PyStaData
  • PythonforResearch | 0_语法基础

    一直想写一份适合经济学等社科背景、学术科研向的 Python 教程。因为学经济学的多少会对 Stata 有所了解,有一些写~代码~命令的经历,这份教程应该:

    PyStaData
  • 常见算法之二叉树遍历

    所谓遍历二叉树,就是遵从某种次序,顺着某一条搜索路径访问二叉树中的各个结点,使得每个结点均被访问一次,而且仅被访问一次。本文详细介绍了二叉树的前序(又称先序)、...

    我是东东东
  • 项目阶段之flask(五)

    1/取出表单中的csrf_token(加密的),使用SECRET_KET解密csrf_token,得到未加密的csrf_token

    小闫同学啊
  • 最小二乘法多项式曲线拟合原理与实现

    概念 最小二乘法多项式曲线拟合,根据给定的m个点,并不要求这条曲线精确地经过这些点,而是曲线y=f(x)的近似曲线y= φ(x)。 原理 [原理部分由个人根据互...

    Angel_Kitty
  • Python filter()函数

    Python filter()函数 filter()函数顾名思义,就是过滤器,它是Python内置的高级函数之一。 filter()函数接收2个...

    Steve Wang
  • 你所不知道的 CSS 滤镜技巧与细节

    Sb_Coco
  • 视频动画 | 冒泡排序只是简单的冒泡排序吗?

    冒泡排序算法时间复杂度最坏的情况是,最好的,说明冒泡排序是可以优化的,就看你有没有去发现。

    我脱下短袖
  • 你所不知道的 CSS 滤镜技巧与细节

    Sb_Coco

扫码关注云+社区

领取腾讯云代金券