Python中的数据可视化:从入门到进阶

news2025/1/25 3:42:59

在这里插入图片描述

数据可视化是数据分析和科学计算中的重要环节,它通过图形化的方式呈现数据,使复杂的统计信息变得直观易懂。Python提供了多种强大的库来支持数据可视化,如Matplotlib、Seaborn、Plotly等。本文将从基础到进阶,详细介绍如何使用这些库进行数据可视化,涵盖基本图表、高级图表和交互式图表等多个方面。

1. 安装必要的库

在开始数据可视化之前,需要安装一些常用的库。这些库包括matplotlibseabornplotlybokeh

pip install matplotlib seaborn plotly bokeh
2. 基本图表
折线图
import matplotlib.pyplot as plt

# 数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

# 创建折线图
plt.plot(x, y, marker='o')

# 设置标题和标签
plt.title("Simple Line Plot")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")

# 显示图表
plt.show()
柱状图
import matplotlib.pyplot as plt

# 数据
categories = ['A', 'B', 'C', 'D']
values = [10, 15, 7, 10]

# 创建柱状图
plt.bar(categories, values, color='skyblue')

# 设置标题和标签
plt.title("Bar Chart")
plt.xlabel("Categories")
plt.ylabel("Values")

# 显示图表
plt.show()
散点图
import matplotlib.pyplot as plt

# 数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

# 创建散点图
plt.scatter(x, y, color='red')

# 设置标题和标签
plt.title("Scatter Plot")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")

# 显示图表
plt.show()
3. 高级图表
箱形图
import seaborn as sns
import matplotlib.pyplot as plt

# 数据
data = [1, 2, 2, 3, 4, 4, 4, 5, 6, 6, 7, 8, 9, 10]

# 创建箱形图
sns.boxplot(data=data)

# 设置标题和标签
plt.title("Box Plot")
plt.xlabel("Data")

# 显示图表
plt.show()
热力图
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

# 数据
data = np.random.rand(10, 10)

# 创建热力图
sns.heatmap(data, annot=True, cmap='coolwarm')

# 设置标题
plt.title("Heatmap")

# 显示图表
plt.show()
直方图
import matplotlib.pyplot as plt

# 数据
data = [1, 2, 2, 3, 4, 4, 4, 5, 6, 6, 7, 8, 9, 10]

# 创建直方图
plt.hist(data, bins=5, alpha=0.75, color='green')

# 设置标题和标签
plt.title("Histogram")
plt.xlabel("Value")
plt.ylabel("Frequency")

# 显示图表
plt.show()
4. 交互式图表
Plotly

Plotly是一个支持交互式图表的库,适用于Web应用和数据报告。

安装Plotly
pip install plotly
绘制交互式折线图
import plotly.express as px

# 数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

# 创建折线图
fig = px.line(x=x, y=y, title="Interactive Line Plot")

# 显示图表
fig.show()
绘制散点图
import plotly.express as px

# 数据
df = px.data.iris()

# 创建散点图
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species", title="Scatter Plot")

# 显示图表
fig.show()
Bokeh

Bokeh是一个用于创建动态、交互式图表的库,特别适合用于Web应用。

安装Bokeh
pip install bokeh
绘制动态折线图
from bokeh.plotting import figure, show
from bokeh.io import output_notebook

# 数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

# 创建图表
p = figure(title="Dynamic Line Plot", x_axis_label="X-axis", y_axis_label="Y-axis")
p.line(x, y, legend_label="Line", line_width=2)

# 显示图表
output_notebook()
show(p)
绘制柱状图
from bokeh.plotting import figure, show
from bokeh.io import output_notebook

# 数据
categories = ['A', 'B', 'C', 'D']
values = [10, 15, 7, 10]

# 创建图表
p = figure(x_range=categories, title="Bar Chart", x_axis_label="Categories", y_axis_label="Values")
p.vbar(x=categories, top=values, width=0.9, color="skyblue")

# 显示图表
output_notebook()
show(p)
5. 地理可视化

地理可视化用于展示地理位置相关的数据,可以使用geopandasfolium等库来实现。

安装必要的库
pip install geopandas folium
绘制地图
import geopandas as gpd
import folium

# 读取地理数据
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))

# 创建地图
m = folium.Map(location=[40.7128, -74.0060], zoom_start=10)

# 添加国家边界
folium.GeoJson(world).add_to(m)

# 显示地图
m
6. 动态图表

动态图表用于展示随时间变化的数据,可以使用matplotlib的动画功能来实现。

安装必要的库
pip install matplotlib
创建动态折线图
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np

# 数据
x = np.linspace(0, 10, 1000)
y = np.sin(x)

# 创建图表
fig, ax = plt.subplots()
line, = ax.plot(x, y)

# 更新函数
def update(frame):
    line.set_ydata(np.sin(x + frame / 10.0))
    return line,

# 创建动画
ani = animation.FuncAnimation(fig, update, frames=200, interval=50, blit=True)

# 显示图表
plt.show()
7. 最佳实践
  • 选择合适的图表类型:根据数据的性质和要传达的信息选择合适的图表类型。
  • 清晰的标签和标题:确保图表有清晰的标签和标题,方便读者理解。
  • 颜色和样式:合理使用颜色和样式,使图表更加美观和易于理解。
  • 交互性:对于复杂的数据,使用交互式图表可以提供更多的信息和更好的用户体验。
结语

Python在数据可视化领域提供了丰富的库和强大的生态系统,通过使用matplotlibseabornplotlybokeh等库,可以轻松实现从基础图表到高级图表和交互式图表的全流程。希望本文能帮助你更好地理解和应用Python进行数据可视化,提升你的数据呈现和分析能力。

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

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

相关文章

如何构建LSTM神经网络模型

一、了解LSTM 1. 核心思想 首先,LSTM 是 RNN(循环神经网络)的变体。它通过引入细胞状态 C(t) 贯穿于整个网络模型,达到长久记忆的效果,进而解决了 RNN 的长期依赖问题。 2. 思维导图 每个LSTM层次都有三个重要的门结构…

贝尔曼公式

为什么return 非常重要 在选择哪个策略更好的时候,此时需要使用到return,比如下面三个策略的返回值。 策略1: 策略2:策略3:涉及到两个policys path How to calculate return 定义 上图定义了不同的起点下的return value 递推…

优化销售漏斗建立高效潜在客户生成策略的技巧

如何建立有效的潜在客户生成策略?建立有效潜在客户生成策略需要准确定义目标受众,利用内容营销、SEO、社交媒体、邮件营销和定向广告吸引客户,参加行业会议并跟踪分析数据。借助Zoho CRM系统,企业能够更加高效地管理客户信息&…

Windows上 minGW64 编译 libssh2库

下载libssh2库:https://libssh2.org/download/libssh2-1.11.0.zip 继续下载OpenSSL库: https://codeload.github.com/openssl/openssl/zip/refs/heads/OpenSSL_1_0_2-stable

算法讲解—最小生成树(Kruskal 算法)

算法讲解—最小生成树(Kruskal 算法) 简介 根据度娘的解释我们可以知道,最小生成树(Minimum Spanning Tree, MST)就是:一个有 n n n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n n n 个结点…

【Diffusion分割】CTS:基于一致性的医学图像分割模型

CTS: A Consistency-Based Medical Image Segmentation Model 摘要: 在医学图像分割任务中,扩散模型已显示出巨大的潜力。然而,主流的扩散模型存在采样次数多、预测结果慢等缺点。最近,作为独立生成网络的一致性模型解决了这一问…

【Python】数据可视化之聚类图

目录 clustermap 主要参数 参考实现 clustermap sns.clustermap是Seaborn库中用于创建聚类热图的函数,该函数能够将数据集中的样本按照相似性进行聚类,并将聚类结果以矩阵的形式展示出来。 sns.clustermap主要用于绘制聚类热图,该热图通…

云计算第四阶段 CLOUD2周目 01-03

国庆假期前,给小伙伴们更行完了云计算CLOUD第一周目的内容,现在为大家更行云计算CLOUD二周目内容,内容涉及K8S组件的添加与使用,K8S集群的搭建。最重要的主体还是资源文件的编写。 (*^▽^*) 环境准备: 主机清单 主机…

CUDNN下载配置

目录 简介 下载 配置 简介 cuDNN(CUDA Deep Neural Network library)是NVIDIA开发的一个深度学习GPU加速库,旨在提供高效、标准化的原语(基本操作)来加速深度学习框架(如TensorFlow、PyTorch等&#xf…

Rust 快速入门(一)

Rust安装信息解释 cargo:Rust的编译管理器、包管理器、通用工具。可以用Cargo启动新的项目,构建和运行程序,并管理代码所依赖的所有外部库。 Rustc:Rust的编译器。通常Cargo会替我们调用此编译器。 Rustdoc:是Rust的…

Java 面向对象设计一口气讲完![]~( ̄▽ ̄)~*(上)

目录 Java 类实例 Java面向对象设计 - Java类实例 null引用类型 访问类的字段的点表示法 字段的默认初始化 Java 访问级别 Java面向对象设计 - Java访问级别 Java 导入 Java面向对象设计 - Java导入 单类型导入声明 按需导入声明 静态导入声明 例子 Java 方法 J…

decltype推导规则

decltype推导规则 当用decltype(e)来获取类型时,编译器将依序判断以下四规则: 1.如果e是一个没有带括号的标记符表达式(id-expression)或者类成员访问表达式,那么decltype(e)就是e所命名的实体的类型。此外,如果e是一个被重载的函…

k8s 之安装metrics-server

作者:程序那点事儿 日期:2024/01/29 18:25 metrics-server可帮助我们查看pod的cpu和内存占用情况 kubectl top po nginx-deploy-56696fbb5-mzsgg # 报错,需要Metrics API 下载 Metrics 解决 wget https://github.com/kubernetes-sigs/metri…

基于auth2的单点登录原理理解

创作背景:基于auth2实现企业门户与业务系统的单点登录跳转。 架构组成:4A统一认证中心,门户系统,业务系统,用户; 实现目标:用户登录门户系统后,可通过点击业务系统菜单&#xff0c…

字符串数学专题

粗心的小可 题目描述 小可非常粗心,打字的时候将手放到了比正确位置偏右的一个位置,因此,Q打成了W,E打成了R,H打成了J等等。键盘如下所示 现在给你若干行小可打字的结果,请你还原成正确的文本。 输入描述…

嵌入式面试八股文(五)·一文带你详细了解程序内存分区中的堆与栈的区别

目录 1. 栈的工作原理 1.1 内存分配 1.2 地址生长方向 1.3 生命周期 2. 堆的工作原理 2.1 动态内存分配 2.1.1 malloc函数 2.1.2 calloc函数 2.1.3 realloc函数 2.1.4 free函数 2.2 生命周期管理 2.3 地址生长方向 3. 堆与栈区别 3.1 管理方式不同…

海南聚广众达电子商务咨询有限公司助力商家业绩飙升

在这个短视频与直播风靡的时代,抖音电商无疑成为了众多商家竞相追逐的新风口。作为电商服务领域的佼佼者,海南聚广众达电子商务咨询有限公司凭借其专业的团队、创新的策略与丰富的实战经验,正引领着一批又一批商家在抖音平台上破浪前行&#…

顺序表及其代码实现

目录 前言1.顺序表1.1 顺序表介绍1.2 顺序表基本操作代码实现 总结 前言 顺序表一般不会用来单独存储数据,但自身的优势,很多时候不得不使用顺序表。 1.顺序表 1.1 顺序表介绍 顺序表是物理结构连续的线性表,支持随机存取(底层…

Leetcode—139. 单词拆分【中等】

2024每日刷题&#xff08;173&#xff09; Leetcode—139. 单词拆分 dp实现代码 class Solution { public:bool wordBreak(string s, vector<string>& wordDict) {int n s.size();unordered_set<string> ust(wordDict.begin(), wordDict.end());vector<b…

探索基于基于人工智能进行的漏洞评估的前景

根据2023年的一份报告 网络安全企业据估计&#xff0c;到 10.5 年&#xff0c;网络犯罪每年将给世界造成 2025 万亿美元的损失。每年记录在案的网络犯罪数量都会创下新高。这要求对传统的安全测试流程进行重大改变。这就是漏洞评估发挥作用的地方。 漏洞评估对于识别系统中的弱…