[R] barplot that displays sums of values of 2 y colums grouped by different variables

Eric Berger ericjberger at gmail.com
Mon Jan 15 20:57:31 CET 2018


https://stackoverflow.com/questions/25070547/ggplot-side-by-side-geom-bar

On Mon, Jan 15, 2018 at 9:39 PM, Kenneth Dyson <kenneth at kidscodejeunesse.org
> wrote:

> Hi Eric,
>
> Thanks for the detailed response.
> This is not exactly what I want to do but is close.
> I want 2 bars for each city, 1 with the sum for "yes" , the other, beside
> it, with the sum for "no".
>
> I am way off track with my method here?
>
> Thanks,
> Ken
>
> Sent from Blue <http://www.bluemail.me/r?b=11745>
> On Jan 15, 2018, at 14:34, Eric Berger <ericjberger at gmail.com> wrote:
>>
>> 'position="dodge"' has no effect in the plot because the x-axis is a
>> factor variable. The bars do not need to be moved to avoid each other. The
>> 'aes(fill=y)' is specifying that you want the color gradient to capture the
>> sums in the 'y' variable. You might be better off to use 'no' and 'yes'
>> rather than 'n' and 'y' to avoid confusion. Then you would see that the
>> statement would be 'aes(fill=yes)'. Summary: the height of each bar
>> represents the sum of the 'no' for that city, and the color of each bar
>> represents the sum of the 'yes' for that city. Your code is fine, unless
>> that is not what you were trying to do.
>>
>> HTH,
>> Eric
>>
>>
>> On Mon, Jan 15, 2018 at 6:59 PM, kenneth dyson <
>> kenneth at kidscodejeunesse.org> wrote:
>>
>>> I am trying to create a barplot displaying the sums of 2 columns of data
>>> grouped by a variable. the data is set up like this:
>>>
>>> "city" "n" "y" <br>
>>> mon 100 200 <br>
>>> tor 209 300 <br>
>>> edm 98 87 <br>
>>> mon 20 76 <br>
>>> tor 50 96 <br>
>>> edm 62 27 <br>
>>>
>>> the resulting plot should have city as the x-axis, 2 bars per city, 1
>>> representing the sum of "n" in that city, the other the sum of "y" in that
>>> city.
>>>
>>> If possible also show the sum in each bar as a label?
>>>
>>> I aggregated the data into sums like this:
>>>
>>> sum_data <- aggregate(. ~ City,data=raw_data,sum)
>>>
>>> this gave me the sums per city as I wanted but for some reason 1 of the
>>> cities is missing in the output.
>>>
>>> Using this code for the plot:
>>>
>>> ggplot(sum_data,aes(x = City,y = n)) + geom_bar(aes(fill = y),stat =
>>> "identity",position = "dodge")
>>>
>>> gave be a bar plot with one bar per city showing the sum of y as a color
>>> gradient. not what I expected given the "dodge" command in geom_bar.
>>>
>>> Thanks.
>>>
>>> ______________________________ ________________
>>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide http://www.R-project.org/posti
>>> ng-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>>
>>

	[[alternative HTML version deleted]]



More information about the R-help mailing list