首页 后端开发 Python教程 Streamlit 部分掌握数据可视化和图表类型

Streamlit 部分掌握数据可视化和图表类型

Oct 30, 2024 am 06:20 AM

Streamlit Part Mastering Data Visualization and Chart Types

在当今快节奏的数据科学世界中,有效地可视化数据至关重要。无论您是经验丰富的数据分析师还是刚刚开始您的旅程,掌握各种可视化技术都可以极大地增强您传达见解和推动决策的能力。本综合指南探讨了 Streamlit,这是一个用于创建交互式 Web 应用程序的流行 Python 库,并介绍了 12 种强大的图表类型,您可以轻松创建以可视化数据。从简单的条形图到高级地理空间可视化,本教程涵盖了所有内容。


Streamlit及其可视化功能简介

Streamlit 彻底改变了数据科学家和开发人员创建用于数据可视化的交互式 Web 应用程序的方式。凭借其直观的 API 以及与流行 Python 库的无缝集成,Streamlit 允许您在几分钟内将数据脚本转换为可共享的 Web 应用程序。在本指南中,我们将重点介绍 Streamlit 在创建各种图表类型方面的多功能性,每种图表类型都针对不同的数据可视化需求量身定制。


1. 面积图

面积图简介

面积图非常适合显示一段时间内或跨类别的累积总数。它们强调变化的幅度以及不同数据集之间的关系,使它们非常适合跟踪趋势和比较多个数据系列。

创建面积图

import numpy as np
import pandas as pd
import streamlit as st

st.write("### 1. Area Chart")

# Generate random data for the area chart
chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=["col1", "col2", "col3"],
)

# Create an area chart using the random data
st.area_chart(
    chart_data,
    x="col1",
    y=["col2", "col3"],
    color=["#FF0000", "#0000FF"],
)

登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

使用案例

  • 销售增长:可视化不同季度的销售额增长情况。
  • 网站流量:跟踪一段时间内的访问者数量。
  • 累积指标: 显示总收入或支出等累积指标。

定制技巧

  • 调整颜色:修改颜色参数以匹配您的品牌或偏好。
  • 添加标题和标签:通过添加标题和轴标签来增强清晰度。
  • 修改轴:调整轴的比例或范围以获得更好的数据表示。

2. 条形图

条形图简介

条形图是比较不同类别或组的基本方法。它们在显示离散数据点方面非常有效,可以轻松比较不同类别的数量。

创建条形图

import numpy as np
import pandas as pd
import streamlit as st

st.write("### 1. Area Chart")

# Generate random data for the area chart
chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=["col1", "col2", "col3"],
)

# Create an area chart using the random data
st.area_chart(
    chart_data,
    x="col1",
    y=["col2", "col3"],
    color=["#FF0000", "#0000FF"],
)

登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

使用案例

  • 按地区划分的销售额:比较不同地区的销售额。
  • 产品热度:显示各种产品的热度。
  • 调查结果:可视化对调查问题的回答。

定制选项

  • 条形颜色:虽然示例使用默认设置,但您可以使用其他参数或通过预处理数据来自定义条形颜色。
  • 方向:更改条形的方向(水平或垂直)以获得更好的可读性。
  • 标签和图例:添加标签和图例以为数据提供更多上下文。

3.折线图

折线图简介

折线图非常适合显示连续数据(例如时间序列)的趋势。它们有助于跟踪变化、识别模式以及比较同一时间间隔内的多个数据系列。

创建折线图

import numpy as np
import pandas as pd
import streamlit as st

st.write("### 2. Bar Chart")

# Generate random data for the bar chart
chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=["col1", "col2", "col3"],
)

# Display a bar chart using the same data
st.bar_chart(chart_data)

登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

使用案例

  • 股票价格:跟踪股票价格随时间的变动。
  • 温度变化:监控不同日期的温度波动。
  • 网站访问量:分析几周或几个月的网站流量趋势。

定制技巧

  • 多条线: 通过在 y 参数中指定附加列来绘制多条线。
  • 线条样式:调整线条样式(实线、虚线)以区分数据系列。
  • 交互性:通过添加工具提示或悬停效果来显示精确值来增强交互性。

4. 地图

Streamlit 中的地图简介

地理数据可视化对于空间分析至关重要,它允许您在地图上可视化数据点,以识别不同位置的模式、热点和分布。

创建地图

import numpy as np
import pandas as pd
import streamlit as st

st.write("### 1. Area Chart")

# Generate random data for the area chart
chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=["col1", "col2", "col3"],
)

# Create an area chart using the random data
st.area_chart(
    chart_data,
    x="col1",
    y=["col2", "col3"],
    color=["#FF0000", "#0000FF"],
)

登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

使用案例

  • 商店位置:显示多个商店或办公室的位置。
  • 事件热点:可视化事件或活动高度集中的区域。
  • 人口分布: 显示不同地区不同人口群体的分布情况。

定制技巧

  • 地图中心和缩放:调整地图的中心和缩放级别以聚焦于特定区域。
  • 标记美学:自定义标记形状、大小和颜色以表示不同的数据维度。
  • 交互性:添加工具提示或弹出窗口以提供有关每个数据点的更多信息。

5. 散点图

散点图简介

散点图是识别两个变量之间关系或相关性的强大工具。它们有助于揭示数据中的模式、趋势和潜在因果关系。

创建散点图

import numpy as np
import pandas as pd
import streamlit as st

st.write("### 2. Bar Chart")

# Generate random data for the bar chart
chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=["col1", "col2", "col3"],
)

# Display a bar chart using the same data
st.bar_chart(chart_data)

登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

使用案例

  • 广告与销售:探索广告支出与销售数字之间的关系。
  • 身高与体重:分析个人身高和体重之间的相关性。
  • 性能指标:比较产品或服务的不同性能指标。

定制技巧

  • 趋势线: 添加趋势线以突出显示数据中的相关性或趋势。
  • 点大小和颜色:根据其他变量调整数据点的大小和颜色来区分数据点。
  • 交互性:通过启用将鼠标悬停在点上时显示详细信息的工具提示来增强交互性。

6.Altair图表

Altair 简介

Altair 是一个 Python 声明式统计可视化库,通过简单直观的语法提供高级图表功能。它擅长用最少的代码创建交互式和复杂的可视化。

创建 Altair 图表

import numpy as np
import pandas as pd
import streamlit as st

st.write("### 1. Area Chart")

# Generate random data for the area chart
chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=["col1", "col2", "col3"],
)

# Create an area chart using the random data
st.area_chart(
    chart_data,
    x="col1",
    y=["col2", "col3"],
    color=["#FF0000", "#0000FF"],
)

登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

使用案例

  • 探索性数据分析:研究多个变量之间的关系。
  • 交互式仪表板:创建响应用户输入的动态可视化。
  • 详细的统计可视化:以易于理解的格式呈现复杂的数据。

定制技巧

  • 分面: 创建小倍数来比较不同的数据子集。
  • 标记类型:尝试不同的标记类型,例如线条、条形或区域,以获得不同的视觉效果。
  • 交互式元素:合并选择、过滤器和缩放以增强用户交互性。

8.Graphviz图表

Graphviz 简介

Graphviz 是一种用于创建图形和网络图的工具,使其对于可视化关系、工作流程和组织结构非常有价值。它允许您以清晰且有组织的方式表示复杂的连接。

创建 Graphviz 图表

import numpy as np
import pandas as pd
import streamlit as st

st.write("### 2. Bar Chart")

# Generate random data for the bar chart
chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=["col1", "col2", "col3"],
)

# Display a bar chart using the same data
st.bar_chart(chart_data)

登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

使用案例

  • 软件开发管道:可视化软件开发从规划到部署的各个阶段。
  • 组织结构:表示组织内的层次结构和关系。
  • 决策树:说明决策流程和可能的结果。

定制技巧

  • 节点形状和颜色:自定义节点形状和颜色来表示不同类型的实体或状态。
  • 边缘样式:修改边缘样式(虚线、粗体)以指示不同类型的关系或依赖关系。
  • 图表布局:探索不同的图表布局(例如分层、圆形)以获得更好的清晰度。

9. 绘图

情节简介

Plotly 是一个强大的库,用于创建交互式和出版质量的图表。它提供了广泛的图表类型和自定义选项,使其适合复杂的数据可视化和交互式仪表板。

创建分布图

import numpy as np
import pandas as pd
import streamlit as st

st.write("### 1. Area Chart")

# Generate random data for the area chart
chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=["col1", "col2", "col3"],
)

# Create an area chart using the random data
st.area_chart(
    chart_data,
    x="col1",
    y=["col2", "col3"],
    color=["#FF0000", "#0000FF"],
)

登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

使用 Plotly Express 创建散点图

import numpy as np
import pandas as pd
import streamlit as st

st.write("### 2. Bar Chart")

# Generate random data for the bar chart
chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=["col1", "col2", "col3"],
)

# Display a bar chart using the same data
st.bar_chart(chart_data)

登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

使用案例

  • 分布分析:并排比较不同数据集的分布。
  • 交互式仪表板:创建响应用户输入的动态和交互式可视化。
  • 比较分析:使用多个主题和样式来突出显示数据的不同方面。

定制技巧

  • 主题调整:探索不同的主题以匹配您的应用程序的设计。
  • 布局配置:调整布局设置,如边距、图例和轴标题,以获得更好的呈现效果。
  • 高级图表类型: 尝试使用 3D 绘图、热图和其他高级图表类型来实现更复杂的可视化。

10. pydeck图表

pydeck简介

pydeck是deck.gl的Python接口,可实现先进的、高性能的WebGL驱动的可视化。它对于创建复杂的交互式地理空间可视化特别有用。

创建 pydeck 图表

import numpy as np
import pandas as pd
import streamlit as st

st.write("### 3. Line Chart")

# Generate random data for the line chart
chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=["col1", "col2", "col3"],
)

# Create a line chart with the random data
st.line_chart(
    chart_data,
    x="col1",
    y="col2",
    color="col3",
)

st.write("#### 3.1 Basic Line Chart")

登录后复制

使用案例

  • 地理空间分析:可视化大型地理空间数据集以识别模式和热点。
  • 城市规划:分析人口密度、交通流量或基础设施分布。
  • 环境研究:绘制环境数据地图,例如污染水平或野生动物目击事件。

定制技巧

  • 不同的图层类型:尝试各种图层类型,如 ScatterplotLayer、ArcLayer 或 PathLayer,以获得不同的视觉效果。
  • 地图样式:更改map_style参数以使用不同的地图主题(例如卫星、深色模式)。
  • 交互性:通过启用工具提示、过滤器和动态数据更新来增强交互性。

11. pyplot 图表

Matplotlib的pyplot简介

Matplotlib 是 Python 中的基础绘图库,pyplot 提供了类似 MATLAB 的界面,用于创建静态、动画和交互式可视化。它具有高度可定制性,广泛用于统计数据分析和教育目的。

创建直方图

import numpy as np
import pandas as pd
import streamlit as st

st.write("### 1. Area Chart")

# Generate random data for the area chart
chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=["col1", "col2", "col3"],
)

# Create an area chart using the random data
st.area_chart(
    chart_data,
    x="col1",
    y=["col2", "col3"],
    color=["#FF0000", "#0000FF"],
)

登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

使用案例

  • 统计分析:可视化数据集的分布以识别模式和异常。
  • 教育目的:教授概率分布和数据标准化等概念。
  • 数据探索: 在执行进一步分析之前评估数据的形状和分布。

定制选项

  • 标题和标签:添加标题、轴标签和图例以提供上下文。
  • 颜色和样式:自定义条形颜色、边缘样式和整体绘图美学。
  • 多个直方图: 叠加多个直方图以比较不同的数据集或组。
  • 高级功能:结合密度图、累积分布或注释以获得更深入的见解。

12.织女星图

Vega-Lite简介

Vega-Lite 是一种用于创建交互式可视化的高级语法,集成到 Streamlit 中以提高灵活性。它允许您使用简洁的规范构建复杂且响应迅速的图表,从而更轻松地创建复杂的可视化效果,而无需大量编码。

创建 Vega 图

import numpy as np
import pandas as pd
import streamlit as st

st.write("### 2. Bar Chart")

# Generate random data for the bar chart
chart_data = pd.DataFrame(
    np.random.randn(20, 3),
    columns=["col1", "col2", "col3"],
)

# Display a bar chart using the same data
st.bar_chart(chart_data)

登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

使用案例

  • 复杂的交互式可视化: 创建复杂的图表来响应用户交互,例如悬停、单击或选择。
  • 数据探索:使用户能够动态探索数据集,通过交互元素发现见解。
  • 嵌入复杂图表:在 Streamlit 应用程序中集成详细的交互式图表,以实现全面的数据演示。

定制技巧

  • 添加图层:合并其他图层,例如线条、条形或区域以丰富可视化效果。
  • 自定义比例和轴:调整比例、轴标题和标签以提高可读性和演示文稿。
  • 交互式选择:实现交互式选择和过滤器,以允许用户专注于特定的数据子集。
  • 样式和主题:通过自定义颜色、字体和整体主题设置来增强美感。

图表类型回顾

在本教程中,我们介绍了 Streamlit 中提供的各种图表类型,每种图表类型都适合不同的数据可视化需求:

  1. 面积图:非常适合显示累计总数和趋势。
  2. 条形图:非常适合比较离散类别或组。
  3. 折线图:非常适合跟踪时间序列等连续数据的变化。
  4. 地图:对于地理数据可视化和空间分析至关重要。
  5. 散点图:有助于识别变量之间的关系和相关性。
  6. Altair Chart: 具有声明性语法的高级交互式可视化。
  7. Graphviz 图表:通过图表可视化关系和工作流程。
  8. 绘图图表:具有广泛定制功能的交互式和出版质量的图表。
  9. pydeck Chart: 使用 WebGL 进行高性能地理空间可视化。
  10. pyplot 图表: 使用 Matplotlib 的多功能功能进行基础绘图。
  11. Vega Chart: 使用 Vega-Lite 语法进行复杂的交互式可视化。

?获取代码:GitHub - jamesbmour/blog_tutorials
?相关Streamlit教程:JustCodeIt
?支持我的工作:请我喝杯咖啡

以上是Streamlit 部分掌握数据可视化和图表类型的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1670
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1274
29
C# 教程
1256
24
Python与C:学习曲线和易用性 Python与C:学习曲线和易用性 Apr 19, 2025 am 12:20 AM

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。

Python和时间:充分利用您的学习时间 Python和时间:充分利用您的学习时间 Apr 14, 2025 am 12:02 AM

要在有限的时间内最大化学习Python的效率,可以使用Python的datetime、time和schedule模块。1.datetime模块用于记录和规划学习时间。2.time模块帮助设置学习和休息时间。3.schedule模块自动化安排每周学习任务。

Python vs.C:探索性能和效率 Python vs.C:探索性能和效率 Apr 18, 2025 am 12:20 AM

Python在开发效率上优于C ,但C 在执行性能上更高。1.Python的简洁语法和丰富库提高开发效率。2.C 的编译型特性和硬件控制提升执行性能。选择时需根据项目需求权衡开发速度与执行效率。

学习Python:2小时的每日学习是否足够? 学习Python:2小时的每日学习是否足够? Apr 18, 2025 am 12:22 AM

每天学习Python两个小时是否足够?这取决于你的目标和学习方法。1)制定清晰的学习计划,2)选择合适的学习资源和方法,3)动手实践和复习巩固,可以在这段时间内逐步掌握Python的基本知识和高级功能。

Python vs. C:了解关键差异 Python vs. C:了解关键差异 Apr 21, 2025 am 12:18 AM

Python和C 各有优势,选择应基于项目需求。1)Python适合快速开发和数据处理,因其简洁语法和动态类型。2)C 适用于高性能和系统编程,因其静态类型和手动内存管理。

Python标准库的哪一部分是:列表或数组? Python标准库的哪一部分是:列表或数组? Apr 27, 2025 am 12:03 AM

pythonlistsarepartofthestAndArdLibrary,herilearRaysarenot.listsarebuilt-In,多功能,和Rused ForStoringCollections,而EasaraySaraySaraySaraysaraySaraySaraysaraySaraysarrayModuleandleandleandlesscommonlyusedDduetolimitedFunctionalityFunctionalityFunctionality。

Python:自动化,脚本和任务管理 Python:自动化,脚本和任务管理 Apr 16, 2025 am 12:14 AM

Python在自动化、脚本编写和任务管理中表现出色。1)自动化:通过标准库如os、shutil实现文件备份。2)脚本编写:使用psutil库监控系统资源。3)任务管理:利用schedule库调度任务。Python的易用性和丰富库支持使其在这些领域中成为首选工具。

Web开发的Python:关键应用程序 Web开发的Python:关键应用程序 Apr 18, 2025 am 12:20 AM

Python在Web开发中的关键应用包括使用Django和Flask框架、API开发、数据分析与可视化、机器学习与AI、以及性能优化。1.Django和Flask框架:Django适合快速开发复杂应用,Flask适用于小型或高度自定义项目。2.API开发:使用Flask或DjangoRESTFramework构建RESTfulAPI。3.数据分析与可视化:利用Python处理数据并通过Web界面展示。4.机器学习与AI:Python用于构建智能Web应用。5.性能优化:通过异步编程、缓存和代码优

See all articles