绘制轴上的每个刻度[SAS]
plot every tick on axis[SAS]
我的数据集包括大约 100 个观测值,假设它们都是 (x,y) 格式,所有 y 都是整数格式。我需要 proc sgplot 来制作关于它们的图形。我的 y 的范围是从 1 到 150。我希望我可以强制图形在 y 轴上显示每个相应的 y 值,而不是为了清楚地显示它们而自动将刻度减少到一个小数字。例如,如果我的 y 的前五个值是 (1,3,4,6,7,...),我希望 y 刻度正好显示 (1,3,4,6,7,... .) 而不是 (1,5,...).
我试过了
yaxis value=(1 to 150 by 1) valueshint display=all;
它不起作用,可能是我的观察太多了。我知道结果可能是压倒性的,但我只想看到结果。谢谢。
你没说你用的是SAS/GRAPH还是ODS GRAPHICS(SGPLOT等),所以我会回答后者,这是我所知道的;答案在概念上应该对两者都有用。
除非轴本身非常大,否则您可能无法让 SAS 在轴上绘制这么多内容。这意味着您有两个选择。
- 以像素为单位提高生成的图形大小(然后通过图像物理大小或使用外部工具将其缩小到可用大小)。不一定在所有情况下都可用,但会产生非常高分辨率的图(尺寸非常大)。 This page explains how to do that for ODS graphics (use
image_dpi
as a high number, and width
and height
in inches as a normal number), and this page 解释 SAS/GRAPH。你可能需要让你的字体变小以使其工作(如果你正在添加数字,我假设你是),或者你可能需要先制作一个最初的大图然后进入 paint/photoshop/gimp/etc。并使其变小。
- 使用注释创建轴标记。如果您知道如何使用注释,这将相当容易,因为您只需写入轴 (y) 和项目 (x) 的位置,然后在其下方写入文本。这将使制作垃圾图非常容易,但最终可能会奏效。
这些可能在 SAS/GRAPH 和 ODS GRAPHICS 中都有效,我无法测试其中任何一个,因为你没有 post 任何代码或模拟数据来测试,但我认为这两种方法有一些优点("don't do this" 的方法也是如此,但你已经考虑过了)。
我的数据集包括大约 100 个观测值,假设它们都是 (x,y) 格式,所有 y 都是整数格式。我需要 proc sgplot 来制作关于它们的图形。我的 y 的范围是从 1 到 150。我希望我可以强制图形在 y 轴上显示每个相应的 y 值,而不是为了清楚地显示它们而自动将刻度减少到一个小数字。例如,如果我的 y 的前五个值是 (1,3,4,6,7,...),我希望 y 刻度正好显示 (1,3,4,6,7,... .) 而不是 (1,5,...).
我试过了
yaxis value=(1 to 150 by 1) valueshint display=all;
它不起作用,可能是我的观察太多了。我知道结果可能是压倒性的,但我只想看到结果。谢谢。
你没说你用的是SAS/GRAPH还是ODS GRAPHICS(SGPLOT等),所以我会回答后者,这是我所知道的;答案在概念上应该对两者都有用。
除非轴本身非常大,否则您可能无法让 SAS 在轴上绘制这么多内容。这意味着您有两个选择。
- 以像素为单位提高生成的图形大小(然后通过图像物理大小或使用外部工具将其缩小到可用大小)。不一定在所有情况下都可用,但会产生非常高分辨率的图(尺寸非常大)。 This page explains how to do that for ODS graphics (use
image_dpi
as a high number, andwidth
andheight
in inches as a normal number), and this page 解释 SAS/GRAPH。你可能需要让你的字体变小以使其工作(如果你正在添加数字,我假设你是),或者你可能需要先制作一个最初的大图然后进入 paint/photoshop/gimp/etc。并使其变小。 - 使用注释创建轴标记。如果您知道如何使用注释,这将相当容易,因为您只需写入轴 (y) 和项目 (x) 的位置,然后在其下方写入文本。这将使制作垃圾图非常容易,但最终可能会奏效。
这些可能在 SAS/GRAPH 和 ODS GRAPHICS 中都有效,我无法测试其中任何一个,因为你没有 post 任何代码或模拟数据来测试,但我认为这两种方法有一些优点("don't do this" 的方法也是如此,但你已经考虑过了)。