python数据可视化实验:Pyecharts绘图(1)

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()

运行结果:

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值