python绘图——在等间距投影线绘制台风标志符号

python——在等间距投影线绘制台风标志符号

在研究台风的路径或者通过其他信号来表征台风的发展时,通常可以在图上添加台风的符号使得图片要素更加多元化。本文介绍如何在等间距投影下,绘制台风符号,结果如下所示:

在这里插入图片描述

1 、通过python代码实现

  • 首先定义一个台风的符号函数,这里已经封装完了,可以直接拿去用:
def get_hurricane():
    u = np.array([  [2.444,7.553],
                    [0.513,7.046],
                    [-1.243,5.433],
                    [-2.353,2.975],
                    [-2.578,0.092],
                    [-2.075,-1.795],
                    [-0.336,-2.870],
                    [2.609,-2.016]  ])
    u[:,0] -= 0.098
    codes = [1] + [2]*(len(u)-2) + [2] 
    u = np.append(u, -u[::-1], axis=0)
    codes += codes

    return mpath.Path(3*u, codes, closed=False)
  • 通过打点的方式,将对应的台风符号通过marker的方式,打在每一个经纬度坐标上
    x、y:填入你自己的经纬度数据,一个经度、一个纬度就是一个网格点。相当于以lon为横轴,lat为纵轴的二维坐标系;我下面的示例中是人造的经纬度数据(偷懒了。。。
    s:可以调整台风标志的大小,
    edgecolors:调整标志的边缘颜色,facecolors同理
    alpha:调整标志的透明度
ax.scatter(x,y,s=50**2, marker=hurricane, 
            edgecolors="#d62728", facecolors='none', linewidth=2,
            transform=ccrs.PlateCarree(),alpha=0.9)

下面是一个完整示例,不需要导入经纬度相关数据,只要安装了相关的库,就可以直接在脚本中运行实现

# -*- coding: utf-8 -*-
"""
Created on Mon Mar 20 22:25:11 2023

@author: jianpu

@blog :  https://blog.csdn.net/weixin_44237337?spm=1000.2115.3001.5343

@email: 211311040008@hhu.edu.cn

introduction : keep learning althongh walk slowly
"""

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import matplotlib.path as mpath
import numpy as np
import cartopy.crs as ccrs
import cartopy.feature as cfeature

def get_hurricane():
    u = np.array([  [2.444,7.553],
                    [0.513,7.046],
                    [-1.243,5.433],
                    [-2.353,2.975],
                    [-2.578,0.092],
                    [-2.075,-1.795],
                    [-0.336,-2.870],
                    [2.609,-2.016]  ])
    u[:,0] -= 0.098
    codes = [1] + [2]*(len(u)-2) + [2] 
    u = np.append(u, -u[::-1], axis=0)
    codes += codes

    return mpath.Path(3*u, codes, closed=False)

hurricane = get_hurricane()

x = np.linspace(105,180,10)
y = np.linspace(0,10,10)

box = [100,181,-20,20]

fig=plt.figure(figsize=(20,15))#设置一个画板,将其返还给fig
ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree(180))
ax.coastlines()
ax.set_extent(box,crs=ccrs.PlateCarree())
ax.gridlines(draw_labels=True,xlocs=[100,120,140,160,180,200])
ax.add_feature(cfeature.OCEAN)

ax.scatter(x,y,s=50**2, marker=hurricane, 
            edgecolors="#d62728", facecolors='none', linewidth=2,
            transform=ccrs.PlateCarree(),alpha=0.9)
ax.scatter(x,-y,s=50**2, marker=hurricane, 
            edgecolors="b", facecolors='none', linewidth=2,
            transform=ccrs.PlateCarree(),alpha=0.9)
plt.show()

2、通过PPT实现

后来,等我把代码码出来,我才发现自己给他搞复杂了。正经人谁给敲代码啊,直接用ppt做岂不是更简单。
直接插入文本框,输入一个6,一个9,让将这两个文本重叠在一块,使用ctrl+G合并,这样一个台风符号就出来了。
接下来,将要添加台风符号的空间分布图,直接导出放到PPT里,然后将台风符号调整适当位置即可。。。。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样简单好调整,但是对于经纬度的选择需要自己提取仔细看一下,一般的示意图可能不用在意太多,但是对于特别的空间pattern还是提取看好经纬度位置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Python 是一种强大的计算机编程语言,其中一个重要的应用就是数组计算和曲线绘制。常用的库有 Numpy 和 Matplotlib。Numpy 提供了高效的数组操作,可以帮助我们进行矩阵运算、统计分析等。Matplotlib 则提供了丰富的绘图工具,可以绘制各种图形,如线图、散点图、直方图等。这些工具可以帮助我们对数据进行可视化和分析。 ### 回答2: Python是一种非常优秀的编程语言,尤其是在科学计算和数据处理方面,Python可以帮助我们快速完成许多复杂的计算和分析任务。而在Python编程中,数组计算和曲线绘制也是非常重要的部分,可以帮助程序员更好地进行数据处理和数据可视化。 在Python中,数组计算是一种高效的数据处理方式。Python中的数组可以使用NumPy库来进行操作,NumPy库可以让我们更方便地进行向量和矩阵运算,也可以对整个数组进行快速的计算和处理。基于NumPy库,我们可以快速地进行数组计算,用简短的代码实现各种复杂的数学运算和数据处理任务。 例如,在Python中我们可以使用NumPy库来进行数组的加、减、乘、除等基本运算,也可以进行数组的切片、拼接、排序等操作。比如,对于两个数组a和b,我们可以使用以下代码来进行数组的加法运算: ```python import numpy as np a = np.array([1, 2, 3, 4]) b = np.array([5, 6, 7, 8]) c = a + b print(c) # [ 6 8 10 12] ``` 通过这种方式,我们可以快速地进行数组计算,完成复杂的数据处理和分析工作。 除了数组计算,Python中的曲线绘制也是非常重要的技能。Python可以使用Matplotlib库来进行数据可视化,Matplotlib库可以帮助我们快速地绘制各种类型的图表,包括线性图、散点图、饼图、柱状图等等。 例如,我们可以使用Matplotlib库来绘制一条简单的折线图,代码如下: ```python import matplotlib.pyplot as plt x = np.arange(0, 10, 0.1) y = np.sin(x) plt.plot(x, y) plt.show() ``` 通过这种方式,我们就可以快速地绘制出一条正弦波曲线,这对于数据分析以及数据可视化非常有用。 综上所述,Python的数组计算和曲线绘制是非常重要的计算思维训练,这不仅可以帮助我们快速地完成数据处理和数据分析任务,还可以帮助我们更好地展示和交流计算结果。希望大家在学习Python的过程中,注重这些计算思维的训练,不断提高自己的编程技能和数据处理能力。 ### 回答3: 计算思维是指在计算机问题解决中的思维方式和方法。Python是一个强大的计算机编程语言,其运用广泛,包括数据科学、Web开发、网络安全、人工智能等多个领域。Python的计算思维训练主要围绕数组计算和曲线绘制展开,这些技能在数据分析和可视化中尤为重要。 数组是Python中最基本的数据类型之一,其优点是数据的存储和处理都十分方便。Python中有丰富的数组库,如NumPy、SciPy和pandas等,可以帮助开发者高效地处理大量数据。在数组计算的训练中,开发者需要学会如何使用数组进行各种常见的计算操作,如数组的加减乘除、索引和切片、排序和聚合等,以便在实际工作中可以快速准确地进行数据处理。 曲线绘制Python中常用的数据可视化技术之一。Matplotlib和Seaborn等库可以帮助开发绘制各种类型的图表,如折线图、散点图、柱状图、饼图等,这些图表能够直观地展示数据分布、趋势和关系。在曲线绘制的训练中,开发者需要学会如何使用不同的绘图库及其参数,选择合适的图表类型和设置图表风格,使其画出的图表更加美观、直观和有用。 总之,Python的计算思维训练目标在于帮助开发者打造高效处理数据和优秀展示数据的能力。掌握数组计算和曲线绘制的技能不仅可以提高计算机编程的水平,更重要的是可以在数据科学领域中获取更多机会和晋升空间。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简朴-ocean

继续进步

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值