How do I create a bar chart in python ggplot?
14,501
Use weight
, here is an example:
from ggplot import *
import pandas as pd
df = pd.DataFrame({"x":[1,2,3,4], "y":[1,3,4,2]})
ggplot(aes(x="x", weight="y"), df) + geom_bar()
the output looks like:
Author by
Clay
Updated on July 12, 2022Comments
-
Clay almost 2 years
I'm using yhat's ggplot library. I have the following pandas DataFrame:
degree observed percent observed expected percent expected 0 0 0 0.0 0 0.044551 1 1 1 0.1 1 0.138604 2 2 3 0.3 2 0.215607 3 3 4 0.4 2 0.223592 4 4 1 0.1 2 0.173905 5 5 1 0.1 1 0.108208
At the moment, I'm doing the following (where
df
returned in the first line in the first line in the function is the DataFrame above):def chartObservedExpected(graph): df = observedExpected(graph) return ggplot(aes(x='degree', y='percent observed'), data=df) + \ geom_point() + \ ylim(-0.015,1.015) + \ xlim(-0.05,max(df['degree']) + 0.25) + \ labs("Degree","Proportion of Total") + \ ggtitle("Observed Node Degree Distribution") chartObservedExpected(G)
This is what I get:
However, whenever I try
geom_bar()
instead ofgeom_point()
, I end up with just 100% bars. I've tried just plaingeom_bar()
and alsogeom_bar(stat="percent observed")
, but neither seem to work. This is always what I get:What I'm trying to do is to mimic/reproduce the following:
Any idea how to get the bar part working (or the whole thing, for that matter)?
-
Clay about 10 yearsThanks! Looks like this is a little funky if you try to use
xlim
to set the range of the x-axis, but it seems to work well otherwise. I also was unable to change the width of the bars. -
Jaycal over 7 yearsSpent so much time trying to do this with
stat='identity'
and it didn't work. This does.