当前位置: 首页 > article >正文

PyEcharts | 通过分析奥迪车购买数据来学习柱状折线复合图像的绘制方法

  • 柱状折线复合图像效果
    在这里插入图片描述

实现步骤

df = pd.read_csv('3汽车之家-奥迪汽车数据.csv')
df.head()

在这里插入图片描述

print(df.shape)
df.info()

在这里插入图片描述

注意所有 列字段 对应的数据类型,同时注意绘图所需要的汽车销售数量和价格

df1 = df.copy()
df1 = df1[~df1['百公里油耗'].str.contains('百公里电耗')]  # 删除百公里电耗 行的数据
df1.shape

(17489, 17)

df_mean_price.info()

df_car_type = df1.groupby('车型')['购车用户'].count()

df_tmp = df1['裸车价格'].str.split('万裸车购买价',expand=True)  #  ⭐
df1['裸车价格'] = df_tmp[0]
df1['裸车价格'] = df1['裸车价格'].astype('float')
df_mean_price = df1.groupby('车型')['裸车价格'].mean().to_frame()# 转换成 DataFrame
df_mean_price['裸车价格']=df_mean_price['裸车价格'].round(decimals=2)

df_mean_price['销量']=df_car_type.values.tolist()
x_data = df_mean_price.index.tolist()
y_data1 = df_mean_price['销量'].tolist()
y_data2 = df_mean_price['裸车价格'].tolist()

当 expand=True 时,返回的结果是一个 DataFrame,每列包含分割后的字符串部分。

bar = (
    Bar(init_opts=opts.InitOpts(width='1000px', height='500px',bg_color='#CFD8DC'))
    .add_xaxis(x_data)
    .add_yaxis("销量",y_data1)
    # 扩展 Y 轴,用于折线图的裸车价格数据
    .extend_axis(
        yaxis=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value} 万"),)# 区间间隔自动显示
    )
    .set_global_opts(
        yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value} 辆")),# 原本y轴
        xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=25)),# x轴标签旋转角度 
        
        visualmap_opts=opts.VisualMapOpts(max_=3000,min_=50,is_show=False),
        
        title_opts=opts.TitleOpts(
            title='奥迪全系销量及裸车价格',
            subtitle_textstyle_opts=opts.TextStyleOpts(color='#795548'),
            pos_top='1%',
            pos_left="center",
            title_textstyle_opts=opts.TextStyleOpts(color='#00838F',font_size=25),
        ),
        legend_opts=opts.LegendOpts(pos_top='8%',pos_right='10%',orient='vertical')
    )
)

line = (
    Line()
    .add_xaxis(x_data)
    .add_yaxis("裸车价格", y_data2, yaxis_index=1,z=10)
    # z=10 确保折线图显示在条形图之上
    # yaxis_index=1 指定折线图绑定到第二个 Y 轴(假设你已经通过 extend_axis 添加了一个额外的 Y 轴)。
)

bar.overlap(line) #将折线图叠加到条形图上
bar.render_notebook()
  • 结果
    在这里插入图片描述

http://www.kler.cn/a/395355.html

相关文章:

  • 算力100问☞第5问:算力如何衡量?
  • 基于GPU器件行为的创新分布式功能安全机制为智能驾驶保驾护航
  • Go 语言中,golang结合 PostgreSQL 、MySQL驱动 开启数据库事务
  • `node-gyp` 无法找到版本为 `10.0.19041.0` 的 Windows SDK
  • Tomcat 和 Netty 的区别及应用场景分析
  • 【计算机网络】UDP网络程序
  • 风险数据集市整体架构及技术实现
  • 深度学习知识点1--编码器与解码器
  • 怎样在软件设计中选择使用GOF设计模式
  • 前端笔试中oj算法题的解法模版
  • Git - 命令杂谈 - fetch与push
  • 13 字母异位词分组
  • 第12课 二维数组(1)
  • Springboot配置全局异常通用返回
  • 电子工牌独立双通道定向拾音方案(有视频演示)
  • qt里面的ui文件和c++的关系
  • Elasticsearch 重建索引数据迁移
  • 智慧安防丨以科技之力,筑起防范人贩的铜墙铁壁
  • 【机器学习】特征工程、降维与超参数调优:提升机器学习模型表现的三大核心技术
  • 点云论文阅读-1-pointnet++
  • HTTP —— OSI七层模型
  • 深度学习之 LSTM
  • MACA-PEG-NHS中PEG链段能够增加修饰后材料的溶解度和稳定性
  • 无人机飞手在保家卫国上重要性技术详解
  • 如何使用谷歌浏览器阅读网页内容
  • 微信小程序中使用离线版阿里云矢量图标