I am trying to rotate my secondary y-label to 270 degrees
, but when I do this passing the rotate=270
argument it overlaps my y-tick text. Any ideas how to fix this?
fig, ax = plt.subplots()
ax.plot(df.index,df.tripTime,label='Fishing Effort', marker='D')
ax2=ax.twinx()
ax2.plot(tr.index,tr.cost, 'g',label='Fuel Expenditure', marker='d')
lines = ax.get_lines() + ax2.get_lines()
ax.legend(lines,[line.get_label() for line in lines], loc='lower left')
ax.set_ylim((0, 18))
ax2.set_ylabel('Cost ($)',color='g', rotation=270)
for tl in ax2.get_yticklabels():
tl.set_color('g')
ax.set_ylabel('Fishing Effort (hrs)')
ax.set_xlabel('Time (days)')
plt.show()
To avoid overlapping of labels and autopct in a matplotlib pie chart, we can follow label as a legend, using legend() method.
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.
To rotate tick labels in a subplot, we can use set_xticklabels() or set_yticklabels() with rotation argument in the method. Create a list of numbers (x) that can be used to tick the axes. Get the axis using subplot() that helps to add a subplot to the current figure.
MatPlotLib with Python Just by using plt. ylabel(rotation='horizontal'), we can align a label according to our requirement.
UPDATE: This answer isn't very good, please look at the comments!
This looks like a bug and you should probably report it to matplotlib's issue tracker.
While it is getting fixed, a quick solution is to set the label padding to a higher value:
ax2.set_ylabel('Cost ($)', color='g', rotation=270, labelpad=15)
Moreover, negative labelpad
values can be used to decrease the white-space as well.
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