我想创建一个matplotlib饼图,其中每个楔形的值都写在楔形顶部.
该文件建议我应该使用autopct这样做.
autopct:[无| 格式字符串| 格式函数]如果不是None,则是用于用其数值标记楔形的字符串或函数.标签将放在楔子内.如果是格式字符串,则标签为fmt%pct.如果它是一个函数,它将被调用.
不幸的是,我不确定这个格式字符串或格式函数应该是什么.
使用下面的这个基本示例,如何在其楔形顶部显示每个数值?
plt.figure()
values = [3, 12, 5, 8]
labels = ['a', 'b', 'c', 'd']
plt.pie(values, labels=labels) #autopct??
plt.show()
Run Code Online (Sandbox Code Playgroud) 我有一个饼图,绘制从CSV文件中提取的值.当前显示的值的比例显示百分比"autopct ='%1.1f %%'".有没有办法显示每个切片的数据集中表示的实际值.
#Pie for Life Expectancy in Boroughs
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
# show plots inline
%matplotlib inline
# use ggplot style
matplotlib.style.use('ggplot')
#read data
lifeEx = pd.read_csv('LEpie.csv')
#Select columns
df = pd.DataFrame()
df['LB'] = lifeEx[['Regions']]
df['LifeEx'] = lifeEx[['MinLF']]
colorz = ['#B5DF00','#AD1FFF', '#BF1B00','#5FB1FF','#FFC93F']
exploda = (0, 0, 0, 0.1, 0)
#plotting
plt.pie(df['LifeEx'], labels=df['LB'], colors=colorz, autopct='%1.1f%%', explode = exploda, shadow = True,startangle=90)
#labeling
plt.title('Min Life expectancy across London Regions', fontsize=12)
Run Code Online (Sandbox Code Playgroud) 我正在尝试以饼图而不是百分比打印实际值,对于一个维度系列,这有帮助:
Matplotlib 饼图:如何用绝对值替换自动标记的相对值
但是当我尝试创建多个馅饼时,它不起作用。
d = {'Yes':pd.Series([825, 56], index=["Total", "Last 2 Month"]), 'No':pd.Series([725, 73], index=["Total", "Last 2 Month"])}
df = pd.DataFrame(d)
df = df.T
def absolute_value(val):
a = np.round(val/100.*df.values, 0)
return a
df.plot.pie(subplots=True, figsize=(12, 6),autopct=absolute_value)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
谢谢。