- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在尝试在 SAS 中使用 PROC SGPLOT 创建一个包含五行(8 年级、10 年级、12 年级、大学生和年轻人)的系列图。 yaxis 是药物使用流行率的百分比,范围为 0-100。 xaxis 是 1975-2019 年,但已格式化(使用 proc 格式),以便将年份值显示为 '75-'19。我想使用其各自的组(8 年级 - 年轻成人)标记每一行。但是当我使用:
proc sgplot data = save.fig2_1data noautolegend ;
series x=year y=eighth / lineattrs=(color=orange) curvelabel='8th Grade' curvelabelpos=start ;
series x=year y=tenth / lineattrs=(color=green) curvelabel='10th Grade' curvelabelpos=start ;
series x=year y=twelfth / lineattrs=(color=blue) curvelabel='12th Grade' curvelabelpos=start;
series x=year y=college / lineattrs=(color=red) curvelabel='College Students' curvelabelpos=start;
series x=year y=youngadult / lineattrs=(color=purple) curvelabel='Young Adults' curvelabelpos=start ;
xaxis label="YEAR" values=(1975 to 2019 by 2) minor;
yaxis label="PERCENT" max=100 min=0 ;
format year yr. ; run ;
最佳答案
没有series
将产生您想要的标签的语句选项。
您必须为 sgplot
创建一个注释数据集。 .
在此示例代码中 curvelabel=
选项设置为 ''
因此该过程会生成一条使用最宽水平绘图空间的系列线。 sganno
数据集包含注释函数,这些函数将在带有空白曲线标签的系列的第一个数据点附近绘制您自己的曲线标签文本。调整 %sgtext
anchor=
根据需要值。请务必阅读 SG Annotation Macro Dictionary文档以了解所有文本注释功能。
对于想要在系列线路中进行人为拆分的情况,有两件事可以尝试:
SERIES
新变量的声明。 data have;
call streaminit(1234);
do year = 1975 to 2019;
array response eighth tenth twelfth college youngadult;
if year >= 1991 then do;
eighth = round (10 + rand('uniform',10), .1);
tenth = eighth + round (5 + rand('uniform',5), .1);
twelfth = tenth + round (5 + rand('uniform',5), .1);
if year in (1998:2001) then tenth = .;
end;
else do;
twelfth = 20 + round (10 + rand('uniform',25), .1);
end;
if year >= 1985 then do;
youngadult = 25 + round (5 + rand('uniform',20), .1);
end;
if year >= 1980 then do;
college = 35 + round (7 + rand('uniform',25), .1);
end;
if year >= 2013 then do _n_ = 1 to dim(response);
%* simulate inflated response level;
if response[_n_] then response[_n_] = 1.35 * response[_n_];
end;
output;
end;
run;
data have_split;
set have;
array response eighth tenth twelfth college youngadult;
array response2 eighth2 tenth2 twelfth2 college2 youngadult2;
if year >= 2013 then do _n_ = 1 to dim(response);
response2[_n_] = response[_n_];
response [_n_] = .;
end;
run;
ods graphics on;
ods html;
%sganno;
data sganno;
%* these variables are used to track '1st' or 'start' point
%* of series being annotated
;
retain y12 ycl;
set have;
if missing(y12) and not missing(twelfth) then do;
y12=twelfth;
%sgtext(label="12th Grade", textcolor="blue", drawspace="datavalue", anchor="top", x1=year, y1=y12, width=100, widthunit='pixel')
end;
if missing(ycl) and not missing(college) then do;
ycl=college;
%sgtext(label="College Students", textcolor="red", drawspace="datavalue", anchor="bottom", x1=year, y1=ycl, width=100, widthunit='pixel')
end;
run;
proc sgplot data=have_split noautolegend sganno=sganno;
series x=year y=eighth / lineattrs=(color=orange) curvelabel='8th Grade' curvelabelpos=start;*auto curvelabelloc=outside ;
series x=year y=tenth / lineattrs=(color=green) curvelabel='10th Grade' curvelabelpos=start;*auto curvelabelloc=outside ;
series x=year y=twelfth / lineattrs=(color=blue) curvelabel='' curvelabelpos=start;*auto curvelabelloc=outside ;
series x=year y=college / lineattrs=(color=red) curvelabel='' curvelabelpos=start;*auto curvelabelloc=outside ;
series x=year y=youngadult / lineattrs=(color=purple) curvelabel='Young Adults' curvelabelpos=start;*auto curvelabelloc=outside ;
* series for the 'shifted' time period use the new variables;
series x=year y=eighth2 / lineattrs=(color=orange) ;
series x=year y=tenth2 / lineattrs=(color=green) ;
series x=year y=twelfth2 / lineattrs=(color=blue) ;
series x=year y=college2 / lineattrs=(color=red) ;
series x=year y=youngadult2 / lineattrs=(color=purple) ;
xaxis label="YEAR" values=(1975 to 2019 by 2) minor;
yaxis label="PERCENT" max=100 min=0 ;
run ;
ods html close;
ods html;
关于PROC SGPLOT中curvelabelpos和xaxis的SAS问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59974818/
使用 xAxis Categories 时如何在运行时更新 highcharts xAxis 范围? 在下面的 JsFiddle 中,期望的结果是当用户单击“所有月份”时,他们将看到完整的系列数据,而
我想绘制按 x 轴数据降序排序的时间序列。我已经按降序给出了我的数据,但 highcharts 仍然按升序绘制它检查 fiddle http://jsfiddle.net/r4rex6oz/ High
我想在同一 xAxis 中以小时为粒度显示来自不同日期间隔的数据。我想将两个图表显示在彼此之上,而不是彼此靠近。 我可以用 2 个 xAxis 来完成。参见示例:http://fiddle.jshel
这是带有样条系列的 Highcharts 图表。 xAxis max 设置为 9405,如以下 fiddle 所示:http://jsfiddle.net/Bridgeland/253gq/1/ 当我
我正在尝试使用 nvd3s 图表制作一个可切换轴,特别是 line chart example 。运行此示例后,打开控制台并输入 chart.setXAxis(false),x 轴不会隐藏。是否有一些
你好,我想知道这种图形是否可以使用 MP Android Chart: 我真正需要的是用其他几个 UI 组件(在本例中是 4 个 TextView 和一个 ImageView)自定义整个 XAxis。
如何从 0 开始 xAxis 和 yAxis 值并在图表库中设置自定义 xAxis 值? 因为库将手动取值。 最佳答案 You can set custom values for xAxis by u
关于 Highcharts,我有一个简短的问题要问你。 如何在运行时重置 xAxis[0] 和 xAxis[1] 宽度,以及如何在运行时重置 xAxis[1] 偏移量?我问的原因是因为我有一个包含两个
我正在寻找一种在 xAxis 标签上注册点击事件的方法。用户应该能够点击 xAxis 标签(而不是系列),我们应该能够调用一个函数。 无论是直接方式还是间接方式都应该没问题。 最佳答案 您几乎可以收听
我正在绘制带有每月数据点的折线图。但是,我希望比例尺仅显示年份字符串。 到目前为止,很容易。但是,据我所知,Highcharts 将始终绘制相对于刻度的 xAxis 标签……我需要在刻度之间居中显示它
好的,我有一个显示一些信息的 flot 堆叠条形图,现在除了 x 轴外,这一切都完美无缺。 目前,它没有显示我希望它显示的数据,而是在每隔一列显示一个列号。 下面是我的 xaxis 代码: var
我有一个 highcharts 图,其中 X 轴单位是日期。我的数据四舍五入到最近的一天,所以没有必要放大超过一天的水平。 但是,highcharts 让我可以放大到小时级别。我不想让用户放大比天更深
我有一个条形图显示,我可以完全控制颜色、对齐方式、数据标签格式等,但是当图表呈现时,x Axis 下方有一个标签以蓝色显示“Y 值”。 生成的标记是这样的... Y-values
我正在绘制一个 Highcharts - options.series.push({ name: this.SubCity, data: this.Data }); 其中 data 是系列数据的数组。
如果我有一个 unix 时间戳作为我的 x 轴,我如何格式化 x 轴刻度以便它们是人类可读的。示例: var x = [ 1599149438, 1599152204, 1599159972,
我使用 vue-apexcharts 在仪表板中绘制图表。我创建了一个通用文件,其中包含所有图表的基本选项(以统一样式和代码可重用性),并使用 mergeDeep() function 扩展/覆盖此对
我使用 mpandroidchart,我设置了 xAxis定位为双方,并设置标签,代码: xAxis.setPosition(XAxisPosition.BOTH_SIDED); xAxis.setD
似乎无法使用 grid.xaxis(at=, lab=) 旋转 xaxis 的标签通过例如90 度使用 gpar -选项。 除了创建单独的视口(viewport)和使用 grid.text() 之外,
我有一个非常基本的“线”周日期图形。我只需要 x 轴上的日期在我第一个点的同一天开始,但实际上它是在相应周的星期一开始的。我在文档上找到了一个 startOfWeek 选项,但只取两个值:0 = Su
当轴类型为“时间”时,无法将垂直标记添加到 xAxis。我想添加代表时间轴上不同日期事件的标记。 我试过的样本, https://jsfiddle.net/msbasanth/ez3cgm5d/3/
我是一名优秀的程序员,十分优秀!