自学内容网 自学内容网

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()
  • 结果
    在这里插入图片描述

原文地址:https://blog.csdn.net/HG0724/article/details/143780584

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!