Python使用Matpoltlib绘制环形图

67 阅读1分钟

引入依赖

import pandas as pd
import matplotlib.pyplot as plt

显示中文和负号

plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams['font.size'] = 10

数据预处理

lipstick = pd.read_csv('./lipstick_v2.csv', encoding='UTF8')

data = lipstick[lipstick['shop'] == '阿玛尼美妆官方旗舰店']
data.loc[:, 'aggregateName'] = data['title'].str[-7:]
# data.loc[:, 'productName'] = (data['title'].str.replace('【正品】', '').str.replace('正品', '').str.replace('\n口红\n', '').str.replace('阿玛尼', '').str.replace(' ', ''))
data['productName'] = [s.split("唇")[0] if '唇' in s else s for s in data['title'].str.replace('【正品】', '')
                        .str.replace('正品', '').str.replace('\n口红\n', '').str.replace('阿玛尼', '')]

# print(data.to_string())

data1 = data.groupby(['aggregateName', 'productName'])['deal'].sum()
aggregate_names = data1.index.get_level_values('aggregateName')
productName = data1.index.get_level_values('productName')
values = data1.values

绘制饼图

plt.figure(figsize=(12, 6))
plt.pie(values,
        labels=productName,
        explode=[0.05, 0.05, 0.05, 0.05, 0.05],
        pctdistance=0.7,
        wedgeprops={'width': 0.5}
        )
plt.title('2023120800')
plt.show()

效果图

Figure_2.png