1. 用excel文件保存本人一周内每天三餐花费金额,利用pyecharts绘制柱形图进行展示
import numpy as np
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Bar
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
df = pd.read_excel("F:/DaiMa/MyJupyter/data/spending.xlsx")
newdf = df.set_index("日期")
#display(newdf)
breakfast = newdf["早餐"].tolist()
lunch = newdf["中餐"].tolist()
dinner = newdf["晚餐"].tolist()
#print(breakfast,lunch,dinner)
bar = (
Bar()
# 添加 x 轴刻度
.add_xaxis(newdf.index.tolist())
# 添加 y 轴数据
.add_yaxis("早餐", breakfast,
# 自定义柱状图样式
itemstyle_opts=opts.ItemStyleOpts(color="yellow"),
# 标签配置
label_opts=opts.LabelOpts(
is_show=True, # 是否显示标签
position="top", # 标签位置
font_size=10, # 标签字体大小
),
# 鼠标悬停提示配置
tooltip_opts=opts.TooltipOpts(formatter="{b}: {c}")
)
.add_yaxis("中餐", lunch,
# 自定义柱状图样式
itemstyle_opts=opts.ItemStyleOpts(color="orange"),
# 标签配置
label_opts=opts.LabelOpts(
is_show=True, # 是否显示标签
position="top", # 标签位置
font_size=10, # 标签字体大小
),
# 鼠标悬停提示配置
tooltip_opts=opts.TooltipOpts(formatter="{b}: {c}")
)
.add_yaxis("晚餐", dinner,
# 自定义柱状图样式
itemstyle_opts=opts.ItemStyleOpts(color="red"),
# 标签配置
label_opts=opts.LabelOpts(
is_show=True, # 是否显示标签
position="top", # 标签位置
font_size=10, # 标签字体大小
),
# 鼠标悬停提示配置
tooltip_opts=opts.TooltipOpts(formatter="{b}: {c}")
)
# 全局配置
.set_global_opts(
# 设置图表标题
title_opts=opts.TitleOpts(title="本人一周", subtitle="三餐花费"),
# 设置 x 轴名称
xaxis_opts=opts.AxisOpts(name="日期"),
# 设置 y 轴名称
yaxis_opts=opts.AxisOpts(name="金额"),
# 添加数据缩放工具栏
toolbox_opts=opts.ToolboxOpts(),
# 设置图例
legend_opts=opts.LegendOpts(pos_right="20%"),
)
)
# 打印
bar.render_notebook()
运行结果:
2.用数据库保存某公司在郑州和洛阳两地2021和2022年的5种不同品牌手机的累计销售额,利用pyecharts选择合适可视化图进行展示,要求能够利用工具框切换为其他不同类型图表
import pandas as pd
import pymysql
import numpy as np
from pyecharts import options as opts
from pyecharts.charts import Bar
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
#从数据库获取方式
# 连接数据库
con = pymysql.connect(host='127.0.0.1',user= 'root',password= 'a1237894560.', database='keshihua')
# 写sql 语句
sql = 'select * from phone_sales'
# 读出数据
df = pd.read_sql(sql, con)
newdf = df.set_index("id")
#display(newdf)
zhengzhou2021 = newdf[(newdf.city=="郑州") & (newdf.year==2021)]
#display(zhengzhou2021)
zhengzhou2022 = newdf[(newdf.city=="郑州") & (newdf.year==2022)]
luoyang2021 = newdf[(newdf.city=="洛阳") & (newdf.year==2021)]
luoyang2022 = newdf[(newdf.city=="洛阳") & (newdf.year==2022)]
z2021 = zhengzhou2021["sales"].tolist()
z2022 = zhengzhou2022["sales"].tolist()
l2021 = luoyang2021["sales"].tolist()
l2022 = luoyang2022["sales"].tolist()
bar = (
Bar()
# 添加 x 轴刻度
.add_xaxis(zhengzhou2021["brand"].tolist())
# 添加 y 轴数据
.add_yaxis("郑州2021", z2021,
# 自定义柱状图样式
itemstyle_opts=opts.ItemStyleOpts(color="yellow"),
# 标签配置
label_opts=opts.LabelOpts(
is_show=True, # 是否显示标签
position="top", # 标签位置
font_size=10, # 标签字体大小
),
# 鼠标悬停提示配置
tooltip_opts=opts.TooltipOpts(formatter="{b}: {c}")
)
.add_yaxis("郑州2022", z2022,
# 自定义柱状图样式
itemstyle_opts=opts.ItemStyleOpts(color="orange"),
# 标签配置
label_opts=opts.LabelOpts(
is_show=True, # 是否显示标签
position="top", # 标签位置
font_size=10, # 标签字体大小
),
# 鼠标悬停提示配置
tooltip_opts=opts.TooltipOpts(formatter="{b}: {c}")
)
.add_yaxis("洛阳2021", l2021,
# 自定义柱状图样式
itemstyle_opts=opts.ItemStyleOpts(color="red"),
# 标签配置
label_opts=opts.LabelOpts(
is_show=True, # 是否显示标签
position="top", # 标签位置
font_size=10, # 标签字体大小
),
# 鼠标悬停提示配置
tooltip_opts=opts.TooltipOpts(formatter="{b}: {c}")
)
.add_yaxis("洛阳2022", l2022,
# 自定义柱状图样式
itemstyle_opts=opts.ItemStyleOpts(color="purple"),
# 标签配置
label_opts=opts.LabelOpts(
is_show=True, # 是否显示标签
position="top", # 标签位置
font_size=10, # 标签字体大小
),
# 鼠标悬停提示配置
tooltip_opts=opts.TooltipOpts(formatter="{b}: {c}")
)
# 全局配置
.set_global_opts(
# 设置图表标题
title_opts=opts.TitleOpts(title="郑州和洛阳两地手机销售额", subtitle="2021年与2022年"),
# 设置 x 轴名称
xaxis_opts=opts.AxisOpts(name="品牌"),
# 设置 y 轴名称
yaxis_opts=opts.AxisOpts(name="销售额",name_location="middle",name_gap=50),
# 添加数据缩放工具栏
toolbox_opts=opts.ToolboxOpts(),
# 设置图例
legend_opts=opts.LegendOpts(pos_right="20%"),
)
)
# 打印
bar.render_notebook()
运行结果:
3. 检索自己家乡省份各城市2022年GDP,利用pyecharts绘制地图进行展示
from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.globals import ThemeType
gdp = [("郑州",12934.7),("洛阳",5800),("南阳",4555.4),("许昌",3850),("周口",3616.99),
("新乡",3463.98),("商丘",3262.68),("驻马店",3257.36),("信阳",3196.23),("平顶山",2839.33),
("开封",2657.11),("安阳",2512.1),("焦作",2234.8),("濮阳",1889.53),("漯河",1812.9),("三门峡",1676.37),("鹤壁",1107.04)]
pie_chart = (
Pie()
.add(
series_name="GDP",data_pair=gdp,
label_line_opts=opts.LabelOpts(
position="outside",
formatter="{b}:{c}"
),
# 鼠标悬停提示框格式
tooltip_opts=opts.TooltipOpts(formatter="{a} <br/>{b}: {c} ({d}%)"),
)
.set_global_opts(
title_opts=opts.TitleOpts(title="河南各城市GDP", subtitle="2022年"),
legend_opts=opts.LegendOpts(orient="vertical", # 设置垂直布局
pos_top="15%", pos_left="2%"), # 图例设置
# 添加数据缩放工具栏
toolbox_opts=opts.ToolboxOpts()
)
)
pie_chart.render_notebook()
运行结果: