Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Matplotlib: Adjusting the ticks to fit within the figure

I have the following matplotlib code which all it does is plots 0-20 on the x-axis vs 0-100 on the y-axis

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(range(20))
ax.set_yticks(range(100))
labels = ax.set_yticklabels(range(100))

The problem I have is that not all the labels actually fit within the y-axis.

What I want to do is to divide the maximum label size into the total area of the figure to calculate how many labels I can put so that then I can group my data into sections 0-10, 10-20, 30-40 and plot those rather than display individual labels 1,2,3,4,5,6,7,8...

I am having trouble with finding the label size of the labels and the label size of the figure (correct me if I am wrong maybe it is the axis size in pixels. It is the first time I am using matplotlib)

How can I find out the number of pixels the figure/axes is taking up (width + height) and also the number of pixels (width + height) of each label?

plot

like image 1000
Har Avatar asked Dec 08 '22 23:12

Har


1 Answers

Simply add the following line:

plt.tight_layout()

like image 158
moshik Avatar answered Dec 20 '22 19:12

moshik