本文介绍用pandas库读取Excel (csv)数据,分别用matplotlib库和pyecharts库绘制饼图。
注:
# 1.导入数据并格式化
import pandas as pd
import numpy as np
# 导入数据
df = pd.read_csv("test.csv")
# 根据label列分组并计数
df_label = df.groupby("label").size()
# 转化为作图所需要的array格式,如:([[ 0, 37536],[ 1, 12322]])
datas = list(zip(df_label.index.to_list(), df_label.to_list()))
datas = np.array(datas)
# 2.绘制饼图
import matplotlib.pyplot as plt
# 设置字体和编码格式
plt.rcParams['font.sans-serif'] = 'simhei'
plt.rcParams['axes.unicode_minus'] = False
# 添加数据,标签,比例
plt.pie(datas[:, 1], labels=datas[:, 0], autopct="%.1ff%%")
# 在左上方添加图例
plt.legend(datas[:, 0], loc="upper left")
# 添加标题
plt.title("饼图-label分析")
# 展示饼图
plt.show()
from pyecharts import options as opts
from pyecharts.charts import Pie
# 1.定义绘图函数,参数:(数据,标题)
def create_pie(datas, title) -> Pie:
pie = Pie()
# 添加数据
pie.add("", datas)
pie.set_global_opts(
# 添加标题和图例
title_opts=opts.TitleOpts(title=title),
legend_opts=opts.LegendOpts(pos_right="right")
)
# 自定义标签的格式
pie.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}人: {d}%"))
return pie
# 2.导入数据并格式化
import pandas as pd
# 导入数据
df = pd.read_csv("test.csv")
# 根据label列分组并计数
df_label = df.groupby("label").size()
# 转化为作图所需要的list格式,如:[(0, 37536), (1, 12322)]
datas = list(zip(df_label.index.to_list(), df_label.to_list()))
# 3.调用绘图函数
pie = create_pie(datas, "饼图-label分析")
pie.render_notebook()