Python Learner
Python Learner

Reputation: 167

Increasing the label size in matplotlib in pie chart

I have the following dictionary

{'Electronic Arts': 66,
 'GT Interactive': 1,
 'Palcom': 1,
 'Fox Interactive': 1,
 'LucasArts': 5,
 'Bethesda Softworks': 9,
 'SquareSoft': 3,
 'Nintendo': 142,
 'Virgin Interactive': 4,
 'Atari': 7,
 'Ubisoft': 28,
 'Konami Digital Entertainment': 11,
 'Hasbro Interactive': 1,
 'MTV Games': 1,
 'Sega': 11,
 'Enix Corporation': 4,
 'Capcom': 13,
 'Warner Bros. Interactive Entertainment': 7,
 'Acclaim Entertainment': 1,
 'Universal Interactive': 1,
 'Namco Bandai Games': 7,
 'Eidos Interactive': 9,
 'THQ': 7,
 'RedOctane': 1,
 'Sony Computer Entertainment Europe': 3,
 'Take-Two Interactive': 24,
 'Square Enix': 5,
 'Microsoft Game Studios': 22,
 'Disney Interactive Studios': 2,
 'Vivendi Games': 2,
 'Sony Computer Entertainment': 52,
 'Activision': 45,
 '505 Games': 4}

Now the problem I am facing is viewing the labels. The labels are extremely small and invisible. Please anyone can suggest on how to increase the label size. I have tried the below code:

plt.figure(figsize=(80,80))
plt.pie(vg_dict.values(),labels=vg_dict.keys())
plt.show()

Upvotes: 0

Views: 826

Answers (1)

Elliot Su
Elliot Su

Reputation: 176

Adding textprops argument in plt.pie method:

plt.figure(figsize=(80,80))
plt.pie(vg_dict.values(), labels=vg_dict.keys(), textprops={'fontsize': 30})
plt.show()

You can check all the properties of Text object here.

Updated

I don't know if your labels order matter? To avoid overlapping labels, you can try to modify your start angle (plt start drawing pie counterclockwise from the x-axis), and re-order the "crowded" labels:

vg_dict = {
    'Palcom': 1,
    'Electronic Arts': 66,
    'GT Interactive': 1,
    'LucasArts': 5,
    'Bethesda Softworks': 9,
    'SquareSoft': 3,
    'Nintendo': 142,
    'Virgin Interactive': 4,
    'Atari': 7,
    'Ubisoft': 28,
    'Hasbro Interactive': 1,
    'Konami Digital Entertainment': 11,
    'MTV Games': 1,
    'Sega': 11,
    'Enix Corporation': 4,
    'Capcom': 13,
    'Acclaim Entertainment': 1,
    'Warner Bros. Interactive Entertainment': 7,
    'Universal Interactive': 1,
    'Namco Bandai Games': 7,
    'Eidos Interactive': 9,
    'THQ': 7,
    'RedOctane': 1,
    'Sony Computer Entertainment Europe': 3,
    'Take-Two Interactive': 24,
    'Vivendi Games': 2,
    'Square Enix': 5,
    'Microsoft Game Studios': 22,
    'Disney Interactive Studios': 2,
    'Sony Computer Entertainment': 52,
    'Fox Interactive': 1,
    'Activision': 45,
    '505 Games': 4}
plt.figure(figsize=(80,80))
plt.pie(vg_dict.values(), labels=vg_dict.keys(), textprops={'fontsize': 35}, startangle=-35)
plt.show()

Result: enter image description here

Upvotes: 3

Related Questions