1、pie(x, explode, labels, colors, autopct, pctdistance, shadow, labeldistance, startangle, radius, counterclock, wedgeprops, textprops, center=(0,0), frame=False)
x:x为每一部分标签的数据大小
labels:饼图的标签,即代表每一块的内容
autopct:添加百分比显示,每一块饼图的占比以百分比显示;
autopct=%3.1f%%代表三位数,其中一位是小数位
shadow:代表是否有阴影;shadow=True/False
explode:代表分裂某一块
explode=[0,0.1,0,0,0] :0.1是指要分裂的这块饼图到中心点的距离
plt.axse(aspect=1):椭圆变为标准圆
startangle:饼图的初始摆放角度
counterclock:是否让饼图按逆时针顺序呈现,是:True 逆时针 , 否:False顺时针
注意:不管逆时针,还是顺时针,水平向右为0度,如果startangle=60,则逆时针60度的位置,为饼图的起始位置
pctdistance:设置百分比标签与圆心的距离
labeldistance:label属性显示的标签与圆心的距离
radius:饼图的半径大小,radius:半径,半径范围
wedgeprops:饼图的内外边界属性,如,边界线的粗细linewidth,颜色edgecolor等
wedgeprops属性中的内是指各个饼图块的分界线
wedgeprops设置值时,以字典格式,wedgeprops={'linewidth' :15, 'edgecolor' : 'green' }
textprops:设置饼图中文本的属性,如字体大小fontsize, 颜色color
数值标签、文本标签、图形的标题title
2、append:首先将要连接的内容转为和要连接的部分一样的类型
eg:
s = df["房屋户型"].value_counts()[:10]
s1 = pd.Series({"其他":df["房屋户型"].value_counts()[10:].sum()})
s = s.append(s1)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pandas import DataFrame,Series
df = pd.read_csv("homenew.csv")
plt.rcParams['font.sans-serif']=['SimHei']
# 用了两种方法画图,第一种太麻烦,第二种比较简单
# 第一种
# list1 =[4915,3087,2888,2761,1975,1359,1218,256,197,184,1663]
# list2 =["2室1厅1厨1卫","2室2厅1厨1卫","3室2厅1厨2卫","3室2厅1厨1卫","3室1厅1厨1卫",
# "1室1厅1厨1卫","4室2厅1厨2卫","3室1厅1厨2卫","5室2厅1厨2卫","4室2厅1厨3卫","其他"]
# plt.pie(x=list1,labels=list2,autopct='%3.1f%%')
# 第二种
# 在房屋户型数量上位于前10的
s = df["房屋户型"].value_counts()[:10]
# 除了房屋户型前10的其他类型的统计在一起
s1 = pd.Series({"其他":df["房屋户型"].value_counts()[10:].sum()})
# 利用append直接将s1连接在s后面
s = s.append(s1)
plt.axes(aspect=1)
s.plot.pie(autopct='%3.1f%%')
plt.title("南京二手房房屋户型占比情况")
plt.savefig("11.png")
plt.show()
print(s)