iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 数据可视化
  • 863
分享到

Python 数据可视化

python数据分析matplotlib 2023-09-17 18:09:39 863人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

Python 数据可视化 python提供了多个用于数据可视化的工具和库。其中最常用的包括: 1. Matplotlib:Matplotlib 是一个用于绘制二维图形的 Python 库。它提供了广泛的绘图选项,可以帮助您创建线图、散点图

Python 数据可视化

python提供了多个用于数据可视化工具和库。其中最常用的包括:

1. Matplotlib:Matplotlib 是一个用于绘制二维图形的 Python 库。它提供了广泛的绘图选项,可以帮助您创建线图、散点图、柱状图、饼图、等高线图、3D 图形等。

2. Seaborn:Seaborn 是基于 Matplotlib 的图形可视化库,它主要用于绘制统计分析结果的图表和数据集。相比于 matplotlib 包,seaborn 包提供了更为美观、更为精美的可视化效果。

3. Plotly:Plotly 是一个交互式数据可视化库,在数据科学领域十分受欢迎。它支持大量的 2D/3D 图表类型,并且具备强大的交互元素如缩放、平移、悬停等等。

4. Bokeh:Bokeh 是一个面向现代网页的交互式可视化工具。它支持多种语言(Python、R 和 Julia)并非常适用于大规模数据集的可视化展示。

5. pandas data visualization:Pandas 数据可视化是 Pandas 库内置的一种数据可视化工具,它可以促使你通过 DataFrames 和 Series 数据结构,快速生成多样性的图表。 

这些库和工具都有不同的功能和应用场景,可以根据具体需求选择合适的工具进行数据可视化。

下面是一些使用不同库进行数据可视化的示例:

1. Matplotlib:用 Matplotlib 绘制折线图、散点图和柱状图。```pythonimport matplotlib.pyplot as pltimport numpy as np# 折线图x = np.arange(0, 10, 0.1)y = np.sin(x)plt.plot(x, y)plt.show()# 散点图x = np.random.rand(50)y = np.random.rand(50)colors = np.random.rand(50)plt.scatter(x, y, c=colors)plt.show()# 柱状图 x = ['A', 'B', 'C', 'D']y = [3, 8, 1, 10]plt.bar(x, y)plt.show()```2. Seaborn:在 Seaborn 中绘制散点图和直方图。```pythonimport seaborn as snsimport numpy as np# 散点图x = np.random.nORMal(size=100)y = np.random.normal(size=100)sns.scatterplot(x=x, y=y)plt.show()# 直方图data = np.random.normal(size=100)sns.histplot(data=data, kde=True)plt.show()```3. Plotly:用 Plotly 绘制交互式热力图和二维散点图。```pythonimport plotly.express as pximport numpy as np# 热力图z = np.random.rand(10, 10)fig = px.imshow(z, color_continuous_scale='OrRd')fig.show()# 二维散点图x = np.random.rand(50)y = np.random.rand(50)colors = np.random.rand(50)fig = px.scatter(x=x, y=y, color=colors)fig.show()```4. Bokeh:用 Bokeh 绘制交互式时序数据图。```pythonfrom bokeh.plotting import figure, output_file, showimport pandas as pd# 读取数据data = pd.read_csv('temperature_data.csv')x = pd.to_datetime(data['datetime'])y = data['temperature']# 绘制曲线output_file('temp_plot.html')p = figure(title="Temperature Data", x_axis_label='Time', y_axis_label='Temperature')p.line(x, y)show(p)```5. Pandas 数据可视化:对 Pandas 的 Series 和 DataFrame 对象直接调用 `plot()` 函数即可绘制不同类型的图表,如折线图、散点图、柱状图、饼图等。下面以折线图为例:```pythonimport pandas as pdimport numpy as np# 创建 Series 对象dates = pd.date_range(start='20210101', end='20210110', periods=10)ts = pd.Series(np.random.randn(10), index=dates)# 绘制折线图ts.plot()```

Example 1 :散点图、密度图(Python)

import numpy as npimport matplotlib.pyplot as plt# 创建随机数n = 100000x = np.random.randn(n)y = (1.5 * x) + np.random.randn(n)fig1 = plt.figure()plt.plot(x,y,'.r')plt.xlabel('x')plt.ylabel('y')plt.savefig('2D_1V1.png',dpi=600)nbins = 200H, xedges, yedges = np.histogram2d(x,y,bins=nbins)# H needs to be rotated and flippedH = np.rot90(H)H = np.flipud(H)# 将 zeros maskHmasked = np.ma.masked_where(H==0,H)# Plot 2D histogram using pcolorfig2 = plt.figure()plt.pcolormesh(xedges,yedges,Hmasked)plt.xlabel('x')plt.ylabel('y')cbar = plt.colorbar()cbar.ax.set_ylabel('Counts')plt.savefig('2D_2V1.png',dpi=600)plt.show()

这段代码的主要作用是生成 2D 直方图,帮助我们可视化数据集中的情况。

首先,使用 `numpy.random.randn()` 函数生成一个包含100,000个元素的随机数数组 x,并由 y = (1.5 * x) + np.random.randn(n) 计算出相应的 y 值,在 plt.plot(x,y,'.r') 中绘制二维散点图。

接着,使用 `numpy.histogram2d()` 函数将数据划分到网格中,并且根据各网格内数据的计数绘制颜色不同的矩形。该函数返回三个值,分别是 H(计数)、xedges(每一列的边界)和 yedges(每一行的边界)。

再之后,在 H 非 0 的区域打上背景遮罩,并通过 `pcolormesh()` 函数把这些区域的计数对应于不同颜色的矩形来展示直方图。

最后,增加了一些标签、轴、颜色线条等细节,并使用 `plt.savefig()` 函数将图片保存为文件。

该代码可以用于描述任何包含两个变量的数据集,以适合于在图像上显示数据的形式呈现它们。

 

Example 2 :双 Y 轴(Python)

import csvimport pandas as pdimport matplotlib.pyplot as pltfrom datetime import datetimedata=pd.read_csv('LOBO0010-2020112014010.tsv',sep='\t')time=data['date [AST]']sal=data['salinity']tem=data['temperature [C]']print(sal)DAT = []for row in time:DAT.append(datetime.strptime(row,"%Y-%m-%d %H:%M:%S"))#create figurefig, ax =plt.subplots(1)# Plot y1 vs x in blue on the left vertical axis.plt.xlabel("Date [AST]")plt.ylabel("Temperature [C]", color="b")plt.tick_params(axis="y", labelcolor="b")plt.plot(DAT, tem, "b-", linewidth=1)plt.title("Temperature and Salinity from LOBO (Halifax, Canada)")fig.autofmt_xdate(rotation=50)# Plot y2 vs x in red on the right vertical axis.plt.twinx()plt.ylabel("Salinity", color="r")plt.tick_params(axis="y", labelcolor="r")plt.plot(DAT, sal, "r-", linewidth=1)#To save your graPHPlt.savefig('saltandtemp_V1.png' ,bbox_inches='tight')plt.show()Example 3:拟合曲线(Python)import csvimport numpy as npimport pandas as pdfrom datetime import datetimeimport matplotlib.pyplot as pltimport scipy.signal as signaldata=pd.read_csv('LOBO0010-20201122130720.tsv',sep='\t')time=data['date [AST]']temp=data['temperature [C]']datestart = datetime.strptime(time[1],"%Y-%m-%d %H:%M:%S")DATE,decday = [],[]for row in time:daterow = datetime.strptime(row,"%Y-%m-%d %H:%M:%S")DATE.append(daterow)decday.append((daterow-datestart).total_seconds()/(3600*24))# First, design the Buterworth filterN= 2# Filter orderWn = 0.01 # Cutoff frequencyB, A = signal.butter(N, Wn, output='ba')# Second, apply the filtertempf = signal.filtfilt(B,A, temp)# Make plotsfig = plt.figure()ax1 = fig.add_subplot(211)plt.plot(decday,temp, 'b-')plt.plot(decday,tempf, 'r-',linewidth=2)plt.ylabel("Temperature (oC)")plt.legend(['Original','Filtered'])plt.title("Temperature from LOBO (Halifax, Canada)")ax1.axes.get_xaxis().set_visible(False)ax1 = fig.add_subplot(212)plt.plot(decday,temp-tempf, 'b-')plt.ylabel("Temperature (oC)")plt.xlabel("Date")plt.legend(['Residuals'])plt.savefig('tem_signal_filtering_plot.png', bbox_inches='tight')plt.show()

代码块主要是使用 Python 实现了一个数字信号处理的过程,是针对来自 LOBO0010-20201122130720.tsv 数据集的处理。

该代码块的任务是进行高斯滤波(Butterworth Filter)处理并拟合曲线,并通过可视化的方式呈现出原始数据和经过滤波处理后的信号及其差异。具体来说,使用 scipy.signal.butter() 函数设计滤波器、应用高斯滤波,然后使用 matplotlib.pyplot.plot() 函数画出图像。此外,还使用 matplotlib.pyplot.legend() 等函数为图形添加标签和文字说明。

最后,使用 matplotlib.pyplot.savefig() 函数将生成的图像保存到本地磁盘,并使用 matplotlib.pyplot.show() 函数展示可视化结果。

Example 3:拟合曲线(Python)

import csvimport numpy as npimport pandas as pdfrom datetime import datetimeimport matplotlib.pyplot as pltimport scipy.signal as signaldata=pd.read_csv('LOBO0010-20201122130720.tsv',sep='\t')time=data['date [AST]']temp=data['temperature [C]']datestart = datetime.strptime(time[1],"%Y-%m-%d %H:%M:%S")DATE,decday = [],[]for row in time:daterow = datetime.strptime(row,"%Y-%m-%d %H:%M:%S")DATE.append(daterow)decday.append((daterow-datestart).total_seconds()/(3600*24))# First, design the Buterworth filterN= 2# Filter orderWn = 0.01 # Cutoff frequencyB, A = signal.butter(N, Wn, output='ba')# Second, apply the filtertempf = signal.filtfilt(B,A, temp)# Make plotsfig = plt.figure()ax1 = fig.add_subplot(211)plt.plot(decday,temp, 'b-')plt.plot(decday,tempf, 'r-',linewidth=2)plt.ylabel("Temperature (oC)")plt.legend(['Original','Filtered'])plt.title("Temperature from LOBO (Halifax, Canada)")ax1.axes.get_xaxis().set_visible(False)ax1 = fig.add_subplot(212)plt.plot(decday,temp-tempf, 'b-')plt.ylabel("Temperature (oC)")plt.xlabel("Date")plt.legend(['Residuals'])plt.savefig('tem_signal_filtering_plot.png', bbox_inches='tight')plt.show()

这段代码主要是针对来自 LOBO0010-20201122130720.tsv 数据集的处理。它的主要任务是使用 Butterworth 滤波器进行数字信号处理,即对温度数据进行滤波处理,并通过可视化的方式呈现出原始数据和经过滤波处理后的信号及其差异。

首先,根据所给的 tsv 文件,我们使用 `pandas.read_csv()` 函数读取 csv 文件并将其加载到 data 存储库中。然后,使用 `datetime.strptime()` 函数来从 data 中获取时间戳。接着,创建一个时间序列,用于绘制 X 轴(每个时刻距离第一个时刻的秒数)。

然后,定义了 Buterworth 滤波器的阶数 N 和截止频率 Wn,并使用 `scipy.signal.butter()` 函数来设计(设计)滤波器。在设计完毕后,使用 `scipy.signal.filtfilt()` 函数应用该滤波器对原始数据 temp 进行滤波,得到滤波后的结果 tempf。

最后,使用 `plt.plot()` 绘制两个子图,分别表示原始温度数据、滤波后的温度数据和它们之间的差异(残差)。使用 `plt.savefig()` 函数将生成的图像保存到本地磁盘,并使用 `matplotlib.pyplot.show()` 函数展示可视化结果。

 

Example 4:三维地形(Python)

# This import reGISters the 3D projectionfrom mpl_toolkits.mplot3d import Axes3Dfrom matplotlib import cbookfrom matplotlib import cmfrom matplotlib.colors import LightSourceimport matplotlib.pyplot as pltimport numpy as npfilename=cbook.get_sample_data('jacksboro_fault_dem.npz',asfileobj=False)with np.load(filename) as dem:z = dem['elevation']nrows, ncols = z.shapex = np.linspace(dem['xmin'], dem['xmax'], ncols)y = np.linspace(dem['ymin'], dem['ymax'], nrows)x, y = np.meshgrid(x, y)region = np.s_[5:50, 5:50]x, y, z = x[region], y[region], z[region]fig, ax = plt.subplots(subplot_kw=dict(projection='3d'))ls = LightSource(270, 45)rgb = ls.shade(z, cmap=cm.gist_earth, vert_exag=0.1, blend_mode='soft')surf = ax.plot_surface(x, y, z, rstride=1, cstride=1, facecolors=rgb,linewidth=0, antialiased=False, shade=False)plt.savefig('example4.png',dpi=600, bbox_inches='tight')plt.show()

这段代码主要使用 Matplotlib 库中的模块 `Axes3D` 来创建和处理 3D 图形。其任务是将样本数据集 jacksboro_fault_dem.npz 中的地理高度(即该点距离海平面的高度)制成 3D 表面图。

首先,导入所需模块和库并读取数据。然后,选择特定区域进行绘制,即选区 region 为左上角为(5,5),右下角为(50,50) 的区域。接下来,使用 LightSource 函数实现 3D 图形的渲染,其中的参数 elevation 是数据集的高程信息,cmap 参数表示图像的颜色映射,vert_exag 参数表示图像的垂直高度系数。最后,使用 `plot_surface()` 函数画出 3D 表面图,并使用 `savefig()` 函数将生成的图像保存到本地磁盘,并使用 `show()` 函数展示可视化结果。

需要注意的是,在此过程中,也需要对 x、y 和 z 坐标进行网格化和重采样以制作 3D 表面图。

来源地址:https://blog.csdn.net/shaozheng0503/article/details/131027184

--结束END--

本文标题: Python 数据可视化

本文链接: https://www.lsjlt.com/news/411268.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python 数据可视化
    Python 数据可视化 Python提供了多个用于数据可视化的工具和库。其中最常用的包括: 1. Matplotlib:Matplotlib 是一个用于绘制二维图形的 Python 库。它提供了广泛的绘图选项,可以帮助您创建线图、散点图...
    99+
    2023-09-17
    python 数据分析 matplotlib
  • python数据可视化
    1、安装matplotlib 在 cmd 中键入 python -m pip install matplotlib,系统将自动安装,需要等一段时间,待完成后 python -m pip list ,显示 敲黑板划重点:一定通过 cdm ...
    99+
    2023-01-30
    数据 python
  • Python数据可视化库-Matplot
    我们接着上次的继续讲解,先讲一个概念,叫子图的概念。 我们先看一下这段代码 import matplotlib.pyplot as plt fig = plt.figure() ax1 = fig.add_subplot(3,2,1) ...
    99+
    2023-01-31
    数据 Python Matplot
  • Python数据可视化详解
    目录一、Matplotlib模块1、绘制基本图表1. 绘制柱形图2. 绘制条形图3. 绘制折线图4. 绘制面积图5. 绘制散点图6. 绘制饼图和圆环图2、图表的绘制和美化技...
    99+
    2023-05-16
    Python数据可视化 Python可视化 数据可视化
  • Python数据可视化的方法
    这篇“Python数据可视化的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python数据可视化的方法”文章吧。一、数...
    99+
    2023-06-30
  • 透视数据奥秘:Python 数据可视化的力量
    利用 Python 进行数据可视化可以显著提升数据分析和理解的效率。通过创建图表、图形和信息图表,数据科学家、分析师和开发人员可以轻松识别趋势、模式和异常值。本文探讨了 Python 中强大的数据可视化库,例如 Matplotlib、S...
    99+
    2024-03-07
    数据可视化、Python、Matplotlib、Seaborn、Pandas
  • Python数据分析之Matplotlib数据可视化
    目录1.前言2.Matplotlib概念3.Matplotlib.pyplot基本使用3.数据展示3.1如何选择展示方式3.2绘制折线图3.3绘制柱状图3.3.1普通柱状图3.3.2...
    99+
    2024-04-02
  • plt 数据可视化
    1、plt.plot(x,y,color) 折线坐标图 import matplotlib.pyplot as plt h = np.linspace(1, 10, 10) v = np.linspace(20,3...
    99+
    2023-01-30
    数据 plt
  • Python数值方法及数据可视化
    随机数和蒙特卡洛模拟求解单一变量非线性方程求解线性系统方程函数的数学积分常微分方程的数值解 等势线绘图和曲线: 等势线  import numpy as np impor...
    99+
    2024-04-02
  • Python 数据可视化之Bokeh详解
    目录安装散点图折线图条形图交互式数据可视化Interactive Legends添加小部件按钮复选框单选按钮总结安装 要安装此类型,请在终端中输入以下命令。 pip install...
    99+
    2024-04-02
  • Python数据可视化库有哪些
    这篇文章主要介绍“Python数据可视化库有哪些”,在日常操作中,相信很多人在Python数据可视化库有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python数据可视化库有哪些”的疑惑有所帮助!接下来...
    99+
    2023-06-02
  • python数据可视化matplotlib.pyplot的用法
    这篇文章主要介绍“python数据可视化matplotlib.pyplot的用法”,在日常操作中,相信很多人在python数据可视化matplotlib.pyplot的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对...
    99+
    2023-06-20
  • python数据分析绘图可视化
    前言: 数据分析初始阶段,通常都要进行可视化处理。数据可视化旨在直观展示信息的分析结果和构思,令某些抽象数据具象化,这些抽象数据包括数据测量单位的性质或数量。本章用的程序库matpl...
    99+
    2024-04-02
  • Python matplotlib数据可视化图绘制
    目录前言1.折线图2.直方图3.箱线图4.柱状图5.饼图6.散点图前言 导入绘图库: import matplotlib.pyplot as plt import numpy as ...
    99+
    2024-04-02
  • Python 数据可视化之Seaborn详解
    目录安装散点图线图条形图直方图总结安装 要安装 seaborn,请在终端中输入以下命令。 pip install seaborn Seaborn 建立在 Matplotlib ...
    99+
    2024-04-02
  • Python数据可视化之环形图
    目录1.引言2.方式一:饼图形式3.方式二:条形图形式1.引言 环形图(圆环)在功能上与饼图相同,整个环被分成不同的部分,用各个圆弧来表示每个数据所占的比例值。但其中心的空白可用于显...
    99+
    2024-04-02
  • Python数据可视化举例分析
    这篇文章主要介绍“Python数据可视化举例分析”,在日常操作中,相信很多人在Python数据可视化举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python数据可视化举例分析”的疑惑有所帮助!接下来...
    99+
    2023-06-16
  • Python疫情数据可视化分析
    目录前言功能函数读取文件更换列名,便于查看全球疫情趋势筛选出中国的数据利用groupby按照省统计确诊死亡治愈病例的总和确诊人数排名前15的国家这里用pyecharts库画图,绘制的...
    99+
    2024-04-02
  • Python有哪些数据可视化库
    今天就跟大家聊聊有关Python有哪些数据可视化库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、Matplotlib是Python中众多数据可视化库的鼻祖,其设计风格与20世纪8...
    99+
    2023-06-15
  • 使用Python进行数据可视化
    目录第一步:导入必要的库第二步:加载数据第三步:创建基本图表第四步:添加更多细节第五步:使用Seaborn库创建更复杂的图表结论数据可视化是一种将数据呈现为图形或图表的技术,它有助于...
    99+
    2023-03-14
    Python 数据可视化 Python 可视化
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作