用streamlit,几行代码就可以拥有漂亮图表!

news2025/1/16 9:01:33

大家注意:因为微信最近又改了推送机制,经常有小伙伴说错过了之前被删的文章,比如前阵子冒着风险写的爬虫,再比如一些限时福利,错过了就是错过了。

所以建议大家加个星标,就能第一时间收到推送。👇

0740fe5db2ccaf801bc10e6f872041bf.jpeg


    大家好,我是爱搞事情的了不起!

之前我们爬过懂车帝的车型评分,3000条数据

http://ssw.fit/categories/op/dcd.html

f5df56d465643c1051e71dc12e8c2e6c.png

想要把这些数据分析的成果做成应用展示给其他人,怎么办?Streamlit作为数据可视化的Python框架,它能很好的达成想要的效果。关键是使用起来特别方便。

前提准备

python丰富的模块真赞,这里使用Pandas 处理Excel数据,Plotly 制作可视化图表,Streamlit 搭建可视化页面

  1. 数据准备 http://ssw.fit/file/carx.xlsx

  2. d6f1db80e427bb56875da21d8f184e69.png

说明:原文件包含200多个品牌,这里截取部分数据,只选择了奥迪别克丰田等23个品牌,并且删除了没有评分的车型

  1. 安装依赖库

pip install padans,plotly,streamlit,openpyxl

分析目的

可以作为数据看板,方便的分析数据。比如说,这份数据里如果从箱型图来看,合资品牌中评分口碑最差的就是日产,评分主要区间是几乎最低的,集中在3.54~ 3.72,远低于别克的3.59~ 3.93

19402ff73e515deb7dc4055a7592539d.png

我们今天的目标有3个:

1.找出各品牌有评分的车型数量

5d7e1e851b00101821bfcdfc9ed04a46.png

2. 评分区间占比分析

104d57125e5ff56f0ffdf5e56d48948b.png

3. 各品牌的评分区间分布

824973a0b2e9a5b388b77b283db75948.png

代码思路

  1. 导入相关包

import pandas as pd
import plotly.express as px
import streamlit as st
import plotly.graph_objs as go
# 设置网页
st.set_page_config(page_title="数据大屏", page_icon=":bar_chart:", layout="wide")
st.balloons()
  1. 读取数据

# 读取数据
def get_data_from_excel():
  df = pd.read_excel(io="C:\drf2\drf2\carx.xlsx",engine="openpyxl",sheet_name="car")
  return df
df = get_data_from_excel()
  1. 设计左侧边栏和标题

# 侧边栏
st.sidebar.header("请在这里筛选:")
brand = st.sidebar.multiselect(
    "选择品牌:",
    options=df["品牌"].unique(),
    default=df["品牌"].unique(),
)
category = st.sidebar.multiselect(
    "车型类别:",
    options=df["车型"].unique(),
    default=df["车型"].unique()
)

df_selection = df.query(
    "车型 == @category & 品牌 == @brand"
)

# 主页面标题
st.title(":bar_chart: 看看大家都喜欢什么车型")
st.markdown("##")
  1. 画可视化图

# 横向条形图:各品牌有评分的车型数量
sales_by_product_line = (
    df_selection.groupby(by=["品牌"]).count()[["车型"]]
)

fig_product_sales = px.bar(
    sales_by_product_line,
    x="车型",
    y=sales_by_product_line.index,
    orientation="h",
    title="<b>各品牌有评分的车型数量</b>"
)
fig_product_sales.update_layout(
    plot_bgcolor="rgba(0,0,0,0)",
    xaxis=(dict(showgrid=False))
)

000d480606df63bab4b9cddb7e8dcf4e.png

从各品牌有评分的车型数量来看,大众第一,36款车型;排名第二的是奔驰,35款。

# 圆环图:评分区间占比
las = df_selection.groupby(df_selection['评分区间']).size()
las.sort_values(ascending=True,inplace=True)
layout = go.Layout(
    title = '<b>评分区间占比</b>',
    barmode='stack'
)
fig_price_sales = go.Figure(data=[go.Pie(labels=las.index, hole =  0.7,values=las.values,hoverinfo = "label + percent")],layout=layout)
fig_price_sales.update_layout(
    xaxis=dict(tickmode="linear"),
    plot_bgcolor="rgba(0,0,0,0)",
    yaxis=(dict(showgrid=False)),
)

# 分隔符
st.markdown("""---""")

724b7de4dfa9396799ecb22b03b399e8.png

三分之二的车型评分在3.5~4分,别小看这零点几的小分,3.5和3.9的区别很大的。3.9分的车型很接近豪华品牌了,要么就是某个品牌中的拳头产品,如丰田凯美瑞3.88(目前降到3.87了),福特蒙迪欧3.91。

最夸张的是BBA的车型,我们在面板上筛选这三个品牌

bc1cc7f3f06cbaf30427b01da86ef470.png

它们四分之三的车型都在4分以上。我们也可以单独筛选某个品牌,4分以上的奔驰车型超过71%,宝马超过78%,奥迪超过79%,

这些评分是怎么分布的呢,比如最高分、最低分、平均分、分布区间等,我们使用箱线图

# 箱线图:各品牌的评分分布
fig = px.box(df_selection, x="品牌", y="评分",color="品牌",
    title="<b>各品牌的评分分布</b>")

fig.update_layout(
    xaxis=dict(tickmode="linear"),
    plot_bgcolor="rgba(0,0,0,0)",
    yaxis=(dict(showgrid=False)),
)

bbb4fcc6e539f29ffe3b7002a8af30e2.png

明显可以看出,BBA的评分集中在4分以上,位居水平线上游位置。此外,评分颇高的是红旗车型。

别克呢?评分口碑可以的,集中在3.59~ 3.93,比丰田高,比日产好很多(3.54~ 3.72)。这份数据里如果从箱型图来看,合资品牌中评分口碑最差的就是日产,评分主要区间是几乎最低的,给它一个差评!

bd6be9cee377e3ef9318de7a403356e1.png

接下来,将图形显示到前端页面

# 将图形显示到前端页面
left_column, right_column,r = st.columns(3)
right_column.plotly_chart(fig_price_sales, use_container_width=True)
left_column.plotly_chart(fig_product_sales, use_container_width=True)
st.markdown("""---""")
left, right = st.columns(2)
right.plotly_chart(fig, use_container_width=True)
# 隐藏streamlit默认格式信息
hide_st_style = """
            <style>
            #MainMenu {visibility: hidden;}
            footer {visibility: hidden;}
            header {visibility: hidden;}
            </style>
            """
st.markdown(hide_st_style, unsafe_allow_html=True)
streamlit run tmp.py

最后运行上面命令,这样一个关于车型评分的数据可视化看板,就搭建完成啦!

交流群

时隔2个月,摸鱼学习交流群再次限时开放了。

fad5a3a7f7c4c21cbfdb3ab81fffedaf.png

Python技术交流群(技术交流、摸鱼、白嫖课程为主)又不定时开放了,感兴趣的朋友,可以在下方公号内回复:666,即可进入,一起 100 天计划!

老规矩,酱友们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!

6b6545f26be2c81357ac7e6ea8a6bb1d.gif

神秘礼包获取方式

识别下方公众号,回复:1024

b3b2132c4cb2ec94fe32664be2e4a180.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/557469.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FastAPI 和 fastapi-amis-admin:强大而可扩展的后台管理解决方案!

大家好&#xff0c;我是安果&#xff01; 我们都知道 Django 生态丰富&#xff0c;功能强大&#xff0c;适用于中、大型项目&#xff0c;并且自带了后台管理系统&#xff1b;而 FastAPI 更适用于构建高性能的 API&#xff0c;后台管理系统需要另外开发 本篇文章将介绍 FastAPI…

完犊子!原单位的离职证明丢了,下周要入职了,用AI做一个行不行?

弄丢了离职证明怎么办&#xff1f; 一位网友哀叹&#xff1a; 完犊子&#xff01;原单位的离职证明丢了&#xff0c;下周要入职了&#xff0c;现在怎么办&#xff1f;用AI做一个行不行&#xff1f; 有相同经历的网友安慰他&#xff0c;离职证明没了没事&#xff0c;新公司会要求…

打卡智能中国(五):博士都去哪儿了?

《打卡智能中国》系列更新了几期&#xff0c;有读者表示&#xff0c;很爱看这类接地气的真实故事&#xff0c;也有读者反映&#xff0c;不是电工&#xff0c;就是文员、农民、治沙人&#xff0c;人工智能不是高精尖学科吗&#xff1f;那些学历很高的博士都去哪儿了&#xff1f;…

用数据讲故事:十大统计学/机器学习魔法指数

统计学和机器学习为数据分析提供理论基础&#xff0c;入门时我看过很多统计学相关书籍&#xff0c;复杂的公式和推导过程让我一度陷入迷茫。对于数据科学/分析师来说&#xff0c;如何使用统计学知识并应用到我们的分析场景中更为重要。本文主要基于数据分析工作中的实际应用场景…

1000本!计算机经典书籍分享

闲话少说&#xff0c;列表如下。 编程语言类书籍 包含&#xff1a;Java、C、C、Python、Go等语言 Java电子书大全https://www.yingyanshe.cn/5275.htmlC电子书大全https://www.yingyanshe.cn/5284.htmlC语言类电子书https://www.yingyanshe.cn/5293.htmlC#电子书https://www…

chatgpt赋能Python-python_fg

Python FG: 优秀的Python工程师一定要知道的资源 如果你是一名Python工程师&#xff0c;那么你一定会喜欢Python FG资源。Python FG是一个在线平台&#xff0c;提供海量的Python API文档、教程、实例、以及与Python有关的各种工具和资源&#xff0c;让Python工程师轻松学习和使…

盘点!Instruction Tuning 时代的大模型

作者 | Kevin吴嘉文 整理 | NewBeeNLP 公众号 https://zhuanlan.zhihu.com/p/616830127 Alpaca&#xff0c;ChatGLM 等模型的效果可以接受&#xff0c;下文总结部分笔记&#xff0c;为训练自定义小型化&#xff08;7B&#xff09;模型提供点知识储备。包括模型论文 LaMDA, Mup…

纯净版Win10系统重装教程(超详细)

本博客详细讲解纯净版Win10系统重装&#xff0c;步骤齐全&#xff0c;小白可实操。 纯净版Win10系统重装教程 系统安装前准备下载安装工具更新重装 制作U盘为启动盘 重装Win10进入Boot模式选择系统版本分区系统安装中新系统配置 系统安装前准备 ➢ 准备8G或8G以上的空U盘。&a…

POSTGRESQL 10个使用POSTGRESQL 需要避免的错误 (译)

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

EOS网络基金会大战Block.One

微信公众号修改了推送规则&#xff0c;请各位亲爱的读者给刘教链公众号添加星标&#x1f31f;&#xff0c;以便及时收到每日最新文章推送&#xff01; 星标&#x1f31f;添加方法&#xff1a;【1】点击标题下方“刘教链 刘教链”的第二个“刘教链”&#xff0c;打开公众号主页&…

chatgpt赋能Python-python_field

Python在Field上的应用 Python作为一门高级编程语言&#xff0c;在众多领域中扮演着应用广泛、易于学习、使用简便、速度出色的角色。在本文中&#xff0c;我们将重点关注Python在Field上的应用。 Field是什么&#xff1f; Field指的是“领域”&#xff0c;包括科学、工程、…

活动报名|分布式人工智能:可扩展性、效率和泛化性

2023年05月25日&#xff08;星期四&#xff09;14:00-15:30&#xff0c;智源社区「智源Live 第42期」线上活动将在线举办&#xff0c;「阅读原文」报名即可参加。 活动主题&#xff1a;分布式人工智能&#xff1a;可扩展性、效率和泛化性 安波 安波是新加坡南洋理工大学校长委员…

chatgpt赋能Python-python_for_end

Python for End: 介绍 Python是一种高级编程语言&#xff0c;由Guido van Rossum创建于1989年&#xff0c;并在1991年正式发布。Python是一种多范式编程语言&#xff0c;可以用于面向对象、函数式和过程式编程。它拥有简单易懂的语法以及扩展性强的库&#xff0c;从而使得开发…

见证ES6革命:深入学习let、const、var的区别、解构赋值、箭头函数等常用知识点,开创全新开发模式。

let、const、var的区别 使用var声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象。使用let声明的变量,其作用域为该语句所在的代码块内,不存在变量提升。使用const声明的是常量,在后面出现的代码块中,不能在修改改常量的值。 var let const 函数级作用域 块级…

ThingsBoard教程(五十):规则节点解析 创建关系节点Create Relation Node,删除关系节点 Delete Relation Node

创建关系节点 Create Relation Node Since TB Version 2.2.1 根据类型和方向,从所选实体创建到消息发起方的关系。 以下消息发起方类型被允许:资产、设备、实体视图、客户、租、仪表板。 通过元数据键模式查找目标实体,然后在源实体和目标实体之间创建关系。 如果选择的…

AbstractStringBuilder源码

介绍 AbstractStringBuilder这个抽象类是StringBuilder和StringBuffer的直接父类&#xff0c;而且定义了很多方法&#xff0c;因此在学习这两个类之前建议先学习 AbstractStringBuilder抽象类 该类在源码中注释是以JDK1.5开始作为前两个类的父类存在的 abstract class Abstr…

【已解决】使用selenium启动谷歌Chrome浏览器打开指定网站,页面空白,而使用其它浏览器手动打开该网站则正常

问题描述 1、在使用python实现自动化网络爬虫时&#xff0c;我使用到selenium来驱动谷歌Chrome浏览器来打开某一个网页&#xff0c;然后爬取数据&#xff0c;代码如下&#xff1a; from selenium import webdriver import timedriver webdriver.Chrome() driver.get(https://…

基于JavaSpringBoot+Vue+uniapp实现微信小程序新闻资讯平台

博主介绍&#xff1a;✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

多模态大模型时代下的文档图像智能分析与处理

多模态大模型时代下的文档图像智能分析与处理 0. 前言1. 人工智能发展历程1.1 传统机器学习1.2 深度学习1.3 多模态大模型时代 2. CCIG 文档图像智能分析与处理论坛2.1 文档图像智能分析与处理的重要性和挑战2.2 文档图像智能分析与处理高峰论坛2.3 走进合合信息 3. 文档图像智…

<SQL>《SQL命令(含例句)精心整理版(2)》

《SQL命令&#xff08;含例句&#xff09;精心整理版&#xff08;2&#xff09;》 跳转《SQL命令&#xff08;含例句&#xff09;精心整理版&#xff08;1&#xff09;8 函数8.1 文本处理函数8.2 数值处理函数8.3 时间处理函数8.3.1 时间戳转化为自定义格式from_unixtime8.3.2 …