Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python ggplot rotate axis labels

when I tried to plot a timeseries with ggplot, the x axis lables became too crowded and overlapped each other:

screenshot1

The code is:

plot = ggplot(df, aes(x=df.index, weight='COUNT')) + \
    geom_bar() + \
    xlab('Date') + \
    ylab('Incidents') 

I tried to add the following line

+ theme(axis.text.x = element_text(angle = 90, hjust = 1))

to the plot, but it doesn't work. And this extra line gives me error:

SyntaxError: keyword can't be an expression
close failed in file object destructor:
sys.excepthook is missing
lost sys.stderr

Any idea how this happened and how should I fix it? Thanks!!

like image 588
xiaolong Avatar asked May 30 '14 22:05

xiaolong


People also ask

How do you rotate axis labels in python?

Rotate X-Axis Tick Labels in Matplotlib There are two ways to go about it - change it on the Figure-level using plt. xticks() or change it on an Axes-level by using tick. set_rotation() individually, or even by using ax. set_xticklabels() and ax.

How do I rotate a bar label in R?

Method 1: Using barplot() To display all the labels, we need to rotate the axis, and we do it using the las parameter. To rotate the label perpendicular to the axis we set the value of las as 2, and for horizontal rotation, we set the value as 1. Secondly, to increase the font size of the labels we use cex.


1 Answers

(Old question, posting the answer if anyone comes across this in the future)

"axis.text.x" format is used for R. When using ggplot for python, replace "axis.text.x" with "axis_text_x"

This worked for me:

theme(axis_text_x  = element_text(angle = 90, hjust = 1))

Reference: https://github.com/yhat/ggplot/blob/master/ggplot/themes/theme.py

like image 178
Deepti Bhatia Avatar answered Oct 11 '22 06:10

Deepti Bhatia