其实在Python中,每次都以list的形式输入数据会比较耗时而麻烦。所以,不如干脆从数据的载体(比如Excel或MySQL)中加载数据进来处理,然后再直接作可视化输出。例子如下:
# 导入模块
import pandas as pd
from pyecharts.charts import Bar,Timeline
# 加载数据
df = pd.read_excel(r"C:\Users\QDM\Desktop\采购经营综合查询.xlsx",sheet_name = 0,header = 2)
df
# 聚合求和
df1 = df.groupby(["部门"])["实际销售额","实际出库毛利额"].sum()
df1
# 重置索引
df2 = df1.reset_index()
df2
# 把结果输出到Excel
df2.to_excel(excel_writer = r"C:\Users\QDM\Desktop\业绩.xlsx")
# 实例化Bar()
bar = Bar()
# 设置X轴参数
bar.add_xaxis(df2["部门"].tolist())
# 设置Y轴参数
bar.add_yaxis(df2.columns[1],df2["实际销售额"].tolist())
bar.add_yaxis(df2.columns[2],df2["实际出库毛利额"].tolist())
# 调用魔术命令
bar.render_notebook()
# 导入模块
import pandas as pd
from pyecharts.charts import Bar,Timeline
# 加载数据
data = pd.read_excel(r"C:\Users\QDM\Desktop\业绩.xlsx",sheet_name = 0,header = 0)
data
# 实例化Bar()
bar = Bar()
# 直接调用刚加载进来 的DataFrame 数据
bar.add_xaxis(data["部门"].tolist())
# 灵活设置Y轴数据
bar.add_yaxis(data.columns[2],data["销售额"].tolist())
bar.add_yaxis(data.columns[4],data["毛利额"].tolist())
bar.render_notebook()
# 导入模块
import pandas as pd
from pyecharts.charts import Bar,Timeline
# 加载数据
data = pd.read_excel(r"C:\Users\QDM\Desktop\业绩.xlsx",sheet_name = 2,header = 0)
data
# 导入模块
import pandas as pd
from pyecharts.charts import Bar,Timeline
# 加载数据
data = pd.read_excel(r"C:\Users\QDM\Desktop\业绩.xlsx",sheet_name = 2,header = 0)
data
# 实例化Bar()
bar = Bar()
bar.add_xaxis(data["部门"].tolist())
bar.add_yaxis(data.columns[1],data["实际销售额"].tolist())
bar.add_yaxis(data.columns[2],data["实际出库毛利额"].tolist())
bar.render_notebook()
# 导入模块
import pandas as pd
from pyecharts.charts import Bar,Timeline
from pyecharts import options as opts
# 加载数据
data = pd.read_excel(r"C:\Users\QDM\Desktop\业绩.xlsx",sheet_name = 2,header = 0)
data
# 实例化Bar()
bar = Bar()
bar.add_xaxis(data["部门"].tolist())
bar.add_yaxis(data.columns[1],data["实际销售额"].tolist())
bar.add_yaxis(data.columns[2],data["实际出库毛利额"].tolist())
bar.set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题"))
'''
.set_global_opts(
title_opts=opts.TitleOpts(
title="多Y轴示例"))
'''
bar.render_notebook()
# 按“实际销售额”排升序
data1 = data.sort_values(by = "实际销售额")
data1
-----------------------------------------------------------------------------------------------------------------------------------------------
综上,通过整理化简之后的代码为:
# 导入模块
import pandas as pd
from pyecharts.charts import Bar,Timeline
from pyecharts import options as opts
# 加载数据
data = pd.read_excel(r"C:\Users\QDM\Desktop\业绩.xlsx",sheet_name = 2,header = 0)
data
# 构建一个新的变量data1,用来接收按“实际销售额”排完升序之后的新变量
data1 = data.sort_values(by = "实际销售额")
data1
# 实例化Bar()
bar = Bar()
bar.add_xaxis(data1["部门"].tolist())
# 灵活调用新变量中所需字段的数据来设置Y轴参数,注意数组下标从0开始
bar.add_yaxis(data1.columns[1],data1["实际销售额"].tolist())
bar.add_yaxis(data1.columns[2],data1["实际出库毛利额"].tolist())
# 设置标题
bar.set_global_opts(title_opts=opts.TitleOpts(title="采购中心各部门业绩(单位:万元)", subtitle="2020年4月份"))
'''
.set_global_opts(
title_opts=opts.TitleOpts(
title="多Y轴示例"))
'''
# 调用notebook中的魔术命令,如果调用 bar.render("图片名称.png") 则在本地生成一个 html 形式的可视化图表
bar.render_notebook()
# 导入模块
import pandas as pd
from pyecharts.charts import Bar,Timeline
from pyecharts import options as opts
# 加载数据
data = pd.read_excel(r"C:\Users\QDM\Desktop\业绩.xlsx",sheet_name = 2,header = 0)
data
# 按“实际销售额”降序排列
data1 = data.sort_values(by = "实际销售额",ascending = False)
data1
# 实例化Bar()
bar = Bar()
bar.add_xaxis(data1["部门"].tolist())
bar.add_yaxis(data1.columns[1],data1["实际销售额"].tolist())
bar.add_yaxis(data1.columns[2],data1["实际出库毛利额"].tolist())
bar.set_global_opts(title_opts=opts.TitleOpts(title="采购中心各部门业绩(单位:万元)", subtitle="2020年4月份"))
'''
.set_global_opts(
title_opts=opts.TitleOpts(
title="多Y轴示例"))
'''
bar.render_notebook()
小结:修改代码乐趣多~
来源:oschina
链接:https://my.oschina.net/u/3750423/blog/4280891