Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: incorporate table into figure

From   Eric Booth <>
To   "<>" <>
Subject   Re: st: incorporate table into figure
Date   Tue, 24 Aug 2010 03:14:05 +0000


Here are two examples to get you started, though, it might be easier to just place an exported .gph or .eps version of the figure above the formatted table in a Word document and use an image capture software or export the page as an image/pdf.

You can tweak the positioning of the text under a figure or written to a file, but it will take some patience. 
The code below requires you to install the rtfutil suite of adofiles from Roger Newson (findit rtfutil)


*! watch for wrapping issues in the code below !*

clear all
sysuse cancer
recode _t (30/max = 30)
stset studytime, fail(died)
streg, distribution(exponential)
predict S, surv

//example 1:  text() option//
sts graph, plot(line S _t, sort) legend(pos(4) ring(0) rows(2)) /// 
graphregion(margin(vlarge) fcolor(white)) ///
xscale(range(-1 30))   aspectratio(.5, place(12)) text(-.2 -3 /// 
  "No. at risk"    ///
  "  Usual Care	 	 1172		 6811		 1119		  1213			  1212" ///
  "  Exercise Train		1444		4242		1233		1231			1213" ///
  , place(se) just(left) margin(l+1 t+1 b+1) width(85))  name(test, replace)
graph save test "graph", replace
graph export graph.eps,  as(eps) replace
//exmaple 2: rtfutil / file write//
sts graph, plot(line S _t, sort) legend(pos(4) ring(0) rows(2)) ///
graphregion(margin(vsmall) fcolor(white))  name(test2, replace)
graph save test2 "graph2", replace
graph export graph2.eps,  as(eps) replace
cap rtfclose handle1       
tempname handle1
rtfopen `handle1' using "mydoc1.rtf", template(fnmono1) replace
file write `handle1' "{\pard\b JAMA Graph\par}" _n
rtflink `handle1' using "graph2.eps"
file write `handle1' "{\line}"     _n(2)
file write `handle1' "{No. at risk 	 }"  _n
file write `handle1' "{\line}"     _n
file write `handle1' "{  Usual Care		 1172		 6811		 1119		  1213			  1212}"    _n
file write `handle1' "{  Exercise Train		1444		4242		1233		1231			1213}"    _n
rtfclose `handle1'
**note: this lines up for me using MS Word 2008 on Mac, but may not line up on other configurations**

~ Eric

On Aug 23, 2010, at 8:44 PM, Jeph Herrin wrote:

> I would like to incorporate a very simply (4x2) table into
> a figure. I would like the 4 columns to line up with the four
> ticks on the x-axis, but appearing below the axis. The row
> labels thus need to be in the left margin. In particular, I need
> to reproduce a figure such as one of these
> and the issue is lining up the numbers across the bottom.
> I have tried to set it up as a -caption()- with two strings,
> but have two problems. First, I cannot persuade the caption to be
> aligned with the left side of the graph; -span- only aligns with the
> left edge of the y-axis lable, whereas I have set the margin to be
> extra wide with -graphreg(m())-. Second, there seems to be no way
> other than experiment to align the 4 columns with 4 ticks on the
> x-axis. In the graph editor there is a "position offset" for the
> caption box which I can set to <0 to achieve what I want, but
> I cannot find any corresponding textbox_option.
> Jeph
> *
> *   For searches and help try:
> *
> *
> *

*   For searches and help try:

© Copyright 1996–2017 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index