Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: STATA graph question: Combining Histograms
From
Nick Cox <[email protected]>
To
[email protected]
Subject
Re: st: STATA graph question: Combining Histograms
Date
Thu, 18 Aug 2011 09:52:13 +0100
Christoph's commands should have one comma, not two. But I don't think
that is what is being sought here.
Here is another guess.
Assuming that the answers to different questions are in different
variables, you want a combined histogram across variables, and
-histogram- doesn't support that. Reach for a -reshape-, then. Given
some fake data
clear
set obs 100
forval i = 1/10 {
gen q`i' = ceil(5 * runiform())
}
. ds
q1 q2 q3 q4 q5 q6 q7 q8 q9 q10
Marlis presumably already has an identifier, but I need one
. gen id = _n
. reshape long q, i(id)
(note: j = 1 2 3 4 5 6 7 8 9 10)
Data wide -> long
-----------------------------------------------------------------------------
Number of obs. 100 -> 1000
Number of variables 11 -> 3
j variable (10 values) -> _j
xij variables:
q1 q2 ... q10 -> q
-----------------------------------------------------------------------------
. rename _j question
. rename q answer
. histogram question, by(answer) discrete xla(1/10) freq
Nick
On Wed, Aug 17, 2011 at 10:26 PM, Christoph Engel <[email protected]> wrote:
> If all you want is 10 graphs in one line, the following would do
>
> hist response26, freq, by(group, cols(10))
>
> maybe together with
>
> hist response26, freq, by(group, cols(10)) xsize(10) ysize(2)
>
> If you also want to change the order, you need memory graphs. You could do
> the following
>
> forvalues i = 1/10 {
> hist response26 if group == `i', freq title("group `i'") name(group`i',
> replace)
> }
>
> and could then arrange them at will, using
>
> graph combine group2 group4 group6
>
> Am 17.08.2011 22:15, schrieb Marlis Gonzalez Fernandez:
>>
>> Nick-
>>
>> Excuse my naiveté... have not figured out all the rules yet.
>>
>> Yes I did:
>>
>> . histogram response26, freq
>>
>> and repeated for 10 different responses thus generating 10 different
>> histograms that I would like to combine (basically as they are) side by side
>> so people can visually compare the frequencies between questions. Not
>> worried about labeling at this point.
>>
>> Used:
>>
>> . graph combine graph1 graph2 graph3
>>
>> But that is not what I am looking for.
>>
Nick Cox
>>
>> We can let -rep78- of the auto data serve as a Likert scale. (The term
>> Likert honours Rensis Likert.)
>>
>> Without code examples of what you tried what you want remains a bit
>> vague. Do you want axis scales? labels on the bars? or what?
>>
>> Is this what you want?
>>
>> . sysuse auto
>> (1978 Automobile Data)
>>
>> . histogram rep78, freq
>>
>> . tab rep78
>>
>> Repair |
>> Record 1978 | Freq. Percent Cum.
>> ------------+-----------------------------------
>> 1 | 2 2.90 2.90
>> 2 | 8 11.59 14.49
>> 3 | 30 43.48 57.97
>> 4 | 18 26.09 84.06
>> 5 | 11 15.94 100.00
>> ------------+-----------------------------------
>> Total | 69 100.00
>>
>> . histogram rep78, freq discrete barw(0.8) yaxis(1 2) yla(6.9 "10"
>> 13.8 "20" 20.7 "30" 27.6 "40" , axis(2)) ytitle("Percent", axis(2))
>>
>> Here I did it by mental arithmetic after noting that 69 is 100% and 6.9 is
>> 10%.
>>
>> Nick
>>
>> On Wed, Aug 17, 2011 at 8:19 PM, Marlis Gonzalez Fernandez
>> <[email protected]> wrote:
>>
>>> I am trying to combine frequency histograms for several questions into
>>> one graph. Each variable has the answers to questions in a likert scale
>>> (always, frequently, infrequently, never, don't know). I want to plot the
>>> frequency and percent for each question side by side. Have not found a good
>>> way to do this.
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/