I want to have labels with small size on a piechart in python to improve visibility here is the code
import matplotlib.pyplot as plt frac=[1.40 , 10.86 , 19.31 , 4.02 , 1.43 , 2.66 , 4.70 , 0.70 , 0.13 , 1.48, 32.96 , 1.11 , 13.30 , 5.86] labels=['HO0900344', 'HO0900331', 'HO0900332', 'HO0900354', 'HO0900358', 'HO0900374', 'HO0900372', 'HO0900373', 'HO0900371', 'HO0900370', 'HO0900369', 'HO0900356', 'HO0900353', 'HO0900343'] fig = plt.figure(1, figsize=(6,6)) ax = fig.add_subplot(111) ax.axis('equal') colors=('b', 'g', 'r', 'c', 'm', 'y', 'burlywood', 'w') ax.pie(frac,colors=colors ,labels=labels, autopct='%1.1f%%') plt.show()
Thanks and cheers
To increase the size of the pie chart, we pass figsize parameter to the figure() method of pyplot.
To change the text font for any chart element, such as a title or axis, right–click the element, and then click Font.
The simplest way to change the font size on a pie chart is directly via the textprops
argument in the pie()
function. Using the code above add it like so:
ax.pie(frac, colors=colors ,labels=labels, autopct='%1.1f%%', textprops={'fontsize': 14})
That way you can just pass in a dictionary with your desired fontsize (e.g., 14). No messing around with rcParams
or return values from the function call.
There are a couple of ways you can change the font size of the labels.
You can dynamically changet the rc settings. Add the following at the top of your script:
import matplotlib as mpl mpl.rcParams['font.size'] = 9.0
Or you can modify the labels after they have been created. When you call ax.pie
it returns a tuple of (patches, texts, autotexts). As an example, modify your final few lines of code as follows:
patches, texts, autotexts = ax.pie(frac, colors=colors, labels=labels, autopct='%1.1f%%') texts[0].set_fontsize(4) plt.show()
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