when I tried to plot a timeseries with ggplot, the x axis lables became too crowded and overlapped each other:
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!!
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.
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.
(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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With