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

这篇具有很好参考价值的文章主要介绍了用streamlit,几行代码就可以拥有漂亮图表!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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


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

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

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

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

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

前提准备

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

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

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

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

  1. 安装依赖库

pip install padans,plotly,streamlit,openpyxl

分析目的

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

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

我们今天的目标有3个:

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

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

2. 评分区间占比分析

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

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

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

代码思路

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

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

从各品牌有评分的车型数量来看,大众第一,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("""---""")

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

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

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

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

它们四分之三的车型都在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)),
)

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

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

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

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

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

# 将图形显示到前端页面
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个月,摸鱼学习交流群再次限时开放了。

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

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

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

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

神秘礼包获取方式

识别下方公众号,回复:1024文章来源地址https://www.toymoban.com/news/detail-456606.html

到了这里,关于用streamlit,几行代码就可以拥有漂亮图表!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Streamlit 讲解专栏(十):数据可视化-图表绘制详解(上)

    在数据可视化的世界中,绘制清晰、易于理解的图表是非常关键的。Streamlit 是一个流行的 Python 库,它提供了简单的界面和强大的功能,帮助用户轻松创建交互式应用程序和数据可视化。而其中的 Chart elements(图表元素)部分则为我们提供了多种图表类型来展示数据。 本文将

    2024年02月12日
    浏览(34)
  • 翻译: Streamlit从入门到精通 显示图表Graphs 地图Map 主题Themes 二

    Streamlit从入门到精通 系列: 翻译: Streamlit从入门到精通 基础控件 一 数据可视化通过将数据整理成更容易理解的格式来讲述故事,凸显趋势和异常点。好的可视化能够讲述一个故事,从数据中去除杂音,突出有用的信息。然而,这不仅仅是简单地美化一个图表使其看起来更好

    2024年01月19日
    浏览(37)
  • 自己个人拥有一个可以支付功能的网站?当然可以了!保姆级演示!

    这是必要条件!!! 这是必要条件!!! 这是必要条件!!! 开通当面付, 个人 、企业账号均可,个人账号可以私聊我帮忙代开通,10分钟就OK !!! 获取订单点击,然后扫码支付 支付成功后就会响应支付成功 接下来介绍应用的创建和配置,一定要仔细哦!!! 应用创建 首

    2024年02月02日
    浏览(43)
  • 写几行代码,了解响应式原理

    作者:袁首京 原创文章,转载时请保留此声明,并给出原文连接。 作为当下的开发人员,无论是不是前端,可能都会频繁的与 React、Vue、Svelte、Solidjs 等等打交道。也许你已经很清楚它们背后的运作原理,那不必往下看了。如果还不是很清楚,那咱们可以一起写几行代码,来

    2024年02月02日
    浏览(29)
  • 真刑!几行代码端了整个教务系统。。

    作者:lyc 来源:https://www.freebuf.com/vuls/358037.html 今天给大家伙分享一个网络安全的案例,程序员和网安同学都可以看看, 前言:本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担 事情的起因是这样

    2024年02月08日
    浏览(43)
  • [AI]人工智能早就可以拥有有大量的初级意识

    意识是人类最基本而神秘的经验之一。在探索意识的本质时,我们需要建立清晰的概念分类体系,以免将它混同于其他概念而无法深入研究。 本文旨在阐述人类意识可能包含的两个层面:初级意识和高级意识,并明确区分它们在定义和机制上存在的不同之处。明确这两个概念的内

    2024年02月05日
    浏览(46)
  • 一文汇总开源大语言模型,人人都可以拥有自己的ChatGPT

    OpenAI发布的ChatGPT火爆全球以来,全球互联网大厂陆续跟进,纷纷宣布了自家的Chat产品,如Google的Bard,百度的文心一言,阿里的通义千问等等。 这些Chat产品背后都是依赖的大语言模型(Large Language Model)。 如果是做一个垂直领域的Chat产品,有2种方案: 直接使用商业化产品,前

    2024年02月05日
    浏览(56)
  • 大家都在用的AI作画Python几行代码就可实现

    要想快速实现功能,咱们先了解一下OpenAI,OpenAI是一家人工智能公司,专注于开发强化学习、机器学习、自然语言处理等技术。OpenAI的主要目标是创造一套安全的人工智能系统,以帮助人们在各行各业中利用这项技术.接下来咱们来实现一下。 安装openai库: 调用openai生成图片以

    2024年02月06日
    浏览(36)
  • 自媒体运营入门基础知识,掌握这4步,你也可以拥有百万粉丝

    第一步:申请账号 确定好要做哪一个自媒体平台后,你就需要到相应的平台进行账号的注册申请,在此给大家一个意见,千万不要每个平台都注册,建议注册一到两个平台,集中注意力,毕竟大家精力有限。 大家在申请账号的时候,就需要填写自己在平台里面的用户名和一

    2024年02月04日
    浏览(36)
  • 几行代码,轻松教你用Java 将 Word 文档转换为 HTML

    Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外, Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像

    2024年02月10日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包