Matlab、Python为工具解析数据可视化之美

 更新时间:2021年11月16日 14:45:23   作者:CaiBirdHu  
下面介绍一些数据可视化的作品(包含部分代码),主要是地学领域,可迁移至其他学科,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

在我们科研、工作中,将数据完美展现出来尤为重要。
数据可视化是以数据为视角,探索世界。我们真正想要的是 — 数据视觉,以数据为工具,以可视化为手段,目的是描述真实,探索世界。
下面介绍一些数据可视化的作品(包含部分代码),主要是地学领域,可迁移至其他学科。

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

import numpy as np
import matplotlib.pyplot as plt

# 创建随机数
n = 100000
x = 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 = 200
H, xedges, yedges = np.histogram2d(x,y,bins=nbins)
# H needs to be rotated and flipped
H = np.rot90(H)
H = np.flipud(H)
# 将zeros mask
Hmasked = np.ma.masked_where(H==0,H) 
# Plot 2D histogram using pcolor
fig2 = 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()

example-figure

在这里插入图片描述

Example 2 :双Y轴(Python)

import csv
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime

data=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 figure
fig, 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 graph
plt.savefig('saltandtemp_V1.png' ,bbox_inches='tight')
plt.show()

在这里插入图片描述

Example 3:拟合曲线(Python)

import csv
import numpy as np
import pandas as pd
from datetime import datetime
import matplotlib.pyplot as plt
import scipy.signal as signal

data=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 filter
N  = 2    # Filter order
Wn = 0.01 # Cutoff frequency
B, A = signal.butter(N, Wn, output='ba')
# Second, apply the filter
tempf = signal.filtfilt(B,A, temp)
# Make plots
fig = 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()

在这里插入图片描述

Example 4:三维地形(Python)

# This import registers the 3D projection
from mpl_toolkits.mplot3d import Axes3D  
from matplotlib import cbook
from matplotlib import cm
from matplotlib.colors import LightSource
import matplotlib.pyplot as plt
import numpy as np

filename = cbook.get_sample_data('jacksboro_fault_dem.npz', asfileobj=False)
with np.load(filename) as dem:
    z = dem['elevation']
    nrows, ncols = z.shape
    x = 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()

在这里插入图片描述

Example 5:三维地形,包含投影(Python)

在这里插入图片描述

Example 6:切片,多维数据同时展现(Python)

在这里插入图片描述

Example 7:SSH GIF 动图展现(Matlab)

在这里插入图片描述

Example 8:Glider GIF 动图展现(Python)

在这里插入图片描述

Example 9:涡度追踪 GIF 动图展现

在这里插入图片描述

到此这篇关于数据可视化之美 -- 以Matlab、Python为工具的文章就介绍到这了,更多相关python数据可视化之美内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中kivy库的使用教程详解

    Python中kivy库的使用教程详解

    Kivy是一个开源Python框架,用于构建具有创意和多点触控功能的用户界面(UI)应用程序,本文主要为大家介绍了一下Kivy的具体使用,需要的可以参考下
    2024-01-01
  • 解析pandas apply() 函数用法(推荐)

    解析pandas apply() 函数用法(推荐)

    这篇文章主要介绍了pandas apply() 函数用法,大家需要掌握函数作为一个对象,能作为参数传递给其它函数,也能作为函数的返回值,具体内容详情跟随小编一起看看吧
    2021-10-10
  • python定义变量类型

    python定义变量类型

    任何编程语言都需要处理数据,比如数字、字符串、字符等,我们可以直接使用数据,也可以将数据保存到变量中,方便以后使用。本文主要介绍了python定义变量类型,感兴趣的可以了解一下
    2021-06-06
  • Python的NumPy使用之数组过滤

    Python的NumPy使用之数组过滤

    这篇文章主要介绍了Python的NumPy使用之数组过滤,在 NumPy中,我们使用布尔索引列表来过滤数组布尔索引列表是与数组中的索引相对应的布尔值列表,需要的朋友可以参考下
    2023-07-07
  • 使用Python自制数据库备份工具实现数据定时覆盖

    使用Python自制数据库备份工具实现数据定时覆盖

    这篇文章主要为大家详细介绍了如何使用Python自制数据库备份工具实现数据定时覆盖功能,文中的示例代码讲解详细,需要的小伙伴可以参考下
    2024-03-03
  • python 删除指定时间间隔之前的文件实例

    python 删除指定时间间隔之前的文件实例

    下面小编就为大家分享一篇python 删除指定时间间隔之前的文件实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python数据可视化plt.savefig如何将图片存入固定路径

    Python数据可视化plt.savefig如何将图片存入固定路径

    这篇文章主要介绍了Python数据可视化plt.savefig如何将图片存入固定路径问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Python参数的传递几种情况实例详解

    Python参数的传递几种情况实例详解

    这篇文章主要给大家介绍了关于Python参数的传递的相关资料,在Python中传递参数指的是函数或方法中的参数传输方式,文中给出了详细的代码示例,需要的朋友可以参考下
    2023-09-09
  • Python打包为exe详细教程

    Python打包为exe详细教程

    今天给大家介绍如何用Python打包exe,文中有非常详细的教程,对正在学习python的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05
  • Python实现抓取百度搜索结果页的网站标题信息

    Python实现抓取百度搜索结果页的网站标题信息

    这篇文章主要介绍了Python实现抓取百度搜索结果页的网站标题信息,本文使用BeautifulSoup来解析HTML,需要的朋友可以参考下
    2015-01-01

最新评论