【python海洋专题三十八】海洋指数画法--折线图样式二

news2024/12/23 8:18:07

【python海洋专题三十八】海洋指数画法–折线图样式二

数据:AMO_index

图像展示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
图片

往期推荐

图片
【python海洋专题一】查看数据nc文件的属性并输出属性到txt文件

【python海洋专题二】读取水深nc文件并水深地形图
【python海洋专题三】图像修饰之画布和坐标轴

【Python海洋专题四】之水深地图图像修饰

【Python海洋专题五】之水深地形图海岸填充

【Python海洋专题六】之Cartopy画地形水深图

【python海洋专题】测试数据

【Python海洋专题七】Cartopy画地形水深图的陆地填充

【python海洋专题八】Cartopy画地形水深图的contourf填充间隔数调整

【python海洋专题九】Cartopy画地形等深线图

【python海洋专题十】Cartopy画特定区域的地形等深线图

【python海洋专题十一】colormap调色

【python海洋专题十二】年平均的南海海表面温度图

【python海洋专题十三】读取多个nc文件画温度季节变化图

【python海洋专题十四】读取多个盐度nc数据画盐度季节变化图

【python海洋专题十五】给colorbar加单位

【python海洋专题十六】对大陆周边的数据进行临近插值

【python海洋专题十七】读取几十年的OHC数据,画四季图

【python海洋专题十八】读取Soda数据,画subplot的海表面高度四季变化图

【python海洋专题十九】找范围的语句进阶版本

【python海洋专题二十】subplots_adjust布局调整

【python海洋专题二十一】subplots共用一个colorbar

【python海洋专题二十二】在海图上text

【python海洋专题二十三】共用坐标轴

【python海洋专题二十四】南海年平均海流图

【python海洋专题二十五】给南海年平均海流+scale

【python海洋专题二十六】南海海流流速图

【python海洋专题二十七】南海四季海流图

【python海洋专题二十八】南海四季海流流速图

【python海洋专题二十九】读取CTD文件数据并画温度点剖面图

【python海洋专题三十】画南海115°E的温度剖面图

【python海洋专题三十一】画南海115°E的地形温度剖面图

【python海洋专题三十二】画南海115°E的地形温度流速剖面图

【python海洋专题三十三】画海洋表面的风场分布

【python海洋专题三十四】调用自己的colormore

【python海洋专题三十五】加密数据–二维插值

【python海洋专题三十六】两个一维数组的相关系数–为海洋指数作准备

【python海洋专题三十七】海洋指数画法–折线图样式一

【MATLAB海洋专题】历史汇总

【matlab程序】图片平面制作||文末点赞分享||海报制作等

大佬推荐一下物理海洋教材吧?

【matlab海洋专题】高级玫瑰图–风速风向频率玫瑰图–此图细节较多

【上千种颜色包|全平台可用】收集自Matlab、python、R、NCL等颜色包

R语言_RColorBrewer包–全平台可用

海洋专用cmocean颜色包_共22种–全平台可用

【matlab教程】matlab不规则区域的外围填充

【海洋科普】沉积物分为粘性沉积物和非粘性沉积物

【海洋科普】黄渤海地理介绍

【科普知识】海洋尺度图和解释

【海洋科普】海洋环流与等高线岩特征联系

代码分享:

"""# ----01 导入函数包-----"""
import matplotlib
import codecs
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection
from matplotlib.colors import ListedColormap, BoundaryNorm

'''# ----02----定义函数--用于区分y=0上下的点----'''


def threshold_plot(ax, x, y, threshv, color, overcolor):
    cmap = ListedColormap([color, overcolor])
    norm = BoundaryNorm([np.min(y), threshv, np.max(y)], cmap.N)
    points = np.array([x, y]).T.reshape(-1, 1, 2)
    segments = np.concatenate([points[:-1], points[1:]], axis=1)
    lc = LineCollection(segments, cmap=cmap, norm=norm)
    lc.set_array(y)
    ax.add_collection(lc)
    ax.set_xlim(np.min(x), np.max(x))
    ax.set_ylim(np.min(y) * 1.1, np.max(y) * 1.1)
    return lc


'''# ----03----读取指数文件----'''
f = codecs.open("D:\pycharm_work\program\\90_read_ocean_index_and_plot\\amo_index.txt",
                mode='r')  # 打开txt文件
year = []; amo_moth_1 = []
for line in f.readlines()[28:]:
    a = line.split()
    a = [float(i) for i in a]
    year.append(a[0])  # 将其添加在year
    amo_moth_1.append(a[1])  # 将其添加在列表之中
    line = f.readline()
f.close()
'''# 02-1将list转换为np,可以画图。数组;'''
b = []
for i in range(len(year)):
    b.append(np.array(year[i]))
year = np.array(b)
b = []
for i in range(len(amo_moth_1)):
    b.append(np.array(amo_moth_1[i]))
amo_moth_1 = np.array(b)
# ----数据处理----去除missing value----
amo_moth_1[amo_moth_1 < - 999] = 0
'''# 画图'''
# ----01----读取颜色--后续使用-shallow_blue---cornflowerblue
filename = 'D:\matlab_work\函数名为colormore的颜色索引表制作\R_color_txt\R_color_single\\deepskyblue.txt'
file = open(filename, 'r')
lines = file.readlines()
file.close()
data1 = []
for line in lines:
    data1.append(float(line.strip()))
cornflowerblue = np.array(data1)
# ----01-1----shallow_red---
filename = 'D:\matlab_work\函数名为colormore的颜色索引表制作\R_color_txt\R_color_single\\brown1.txt'
file = open(filename, 'r')
lines = file.readlines()
file.close()
data2 = []
for line in lines:
    data2.append(float(line.strip()))
brown = np.array(data2)
# ----01-2----shallow_black---
filename = 'D:\matlab_work\函数名为colormore的颜色索引表制作\R_color_txt\R_color_single\\lavenderblush4.txt'
file = open(filename, 'r')
lines = file.readlines()
file.close()
data2 = []
for line in lines:
    data2.append(float(line.strip()))
black = np.array(data2)
# ----01-2----shallow_black---
filename = 'D:\matlab_work\函数名为colormore的颜色索引表制作\R_color_txt\R_color_single\\gray10.txt'
file = open(filename, 'r')
lines = file.readlines()
file.close()
data2 = []
for line in lines:
    data2.append(float(line.strip()))
gray70 = np.array(data2)
# ----01-4----shallow_black---
filename = 'D:\matlab_work\函数名为colormore的颜色索引表制作\R_color_txt\R_color_single\\gray75.txt'
file = open(filename, 'r')
lines = file.readlines()
file.close()
data2 = []
for line in lines:
    data2.append(float(line.strip()))
gray90 = np.array(data2)
# ----02----中文字体设置----
matplotlib.rc("font", family='Microsoft YaHei', weight="bold")
# 创建图形和坐标轴对象# 分辨率参数-dpi,画布大小参数-figsize
fig, ax = plt.subplots(dpi=300, figsize=(3.8, 2.3))
# ----03----绘制数组的折线图--颜色设置
ax.plot(year, amo_moth_1, color=black / 256, marker='.', linestyle='-', linewidth=0.7, markersize=1)
plt.axhline(y=0.0, color=gray90 / 256, linestyle='--', lw=0.5, zorder=0)  # y=0
# ----04----绘制数组的散点图--颜色设置---
ax.scatter(year, amo_moth_1, s=0.3, color=gray70 / 256, zorder=2)
# ----05----设置散点分散--以y=0上下不同颜色设置。---
below_threshold = amo_moth_1 < 0
ax.scatter(year[below_threshold], amo_moth_1[below_threshold], s=3, color=cornflowerblue / 256, zorder=1)
# ----Add above threshold markers
above_threshold = np.logical_not(below_threshold)
ax.scatter(year[above_threshold], amo_moth_1[above_threshold], s=3, color=brown / 256, zorder=1)
# ----04----设置坐标轴标签  标签设置字体大小设置--坐标轴范围限制---
plt.xlabel('年份', fontsize=5)
plt.ylabel('AMO(index)', fontsize=5)
plt.title('AMO(index)', fontsize=5)
plt.xlim(1900, 2020)
plt.ylim(-1, 1)
# ----05----刻度设置及刻度值字体大小(分别设置x轴和y轴)
plt.yticks(np.linspace(-1, 1, 5), fontsize=5, color='#000000')
plt.xticks([1900, 1910, 1920, 1930, 1940, 1950, 1960, 1970, 1980, 1990, 2000, 2010, 2020], fontsize=5, color='#000000')
ax.tick_params("both", which='major', length=2, width=1.0, colors='k', direction='in')  # "y", 'x', 'both'
# ----06----保存图像
plt.savefig('amo_index_plot_scatter_0.jpg', dpi=600, bbox_inches='tight', pad_inches=0.1)  # 输出地图,并设置边框空白紧密
plt.show()

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

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

相关文章

Centos7利用tftp与shell备份H3C设备配置

二、TFTPH3C TFTP&#xff08;Trivial File Transfer Protocol&#xff09;是一种简单的文件传输协议&#xff0c;通常用于在计算机网络中传输小文件&#xff0c;如配置文件、固件和其他小型数据文件。TFTP被设计成一种轻量级的协议&#xff0c;因此相对于其他文件传输协议&…

win7电脑怎么录屏?教你一键捕捉电脑屏幕

在Win7操作系统中&#xff0c;录制屏幕活动是一项重要且有用的功能。不仅可以用于制作教程和演示文稿&#xff0c;还可以用于记录游戏过程或视频会议。可是win7电脑怎么录屏呢&#xff1f;在本文中&#xff0c;我们将介绍三种流行的Win7电脑录屏方法。通过本文&#xff0c;您将…

浅谈余压监控系统在某高层住宅的应用方案

【摘要】&#xff1a; 本文介绍了余压监控系统的基本架构和功能&#xff0c;结合某高层住宅建设实例分析了高层民用建筑中设置此系统的优点与必要性&#xff0c;总结了余压监控系统的功能用于高层建筑物中楼梯间和前室、前室和走道之间的余压的监控与调节&#xff0c;使监控区域…

3D可视化字母出现频率_vtkLinearExtrusionFilter

开发环境&#xff1a; Windows 11 家庭中文版Microsoft Visual Studio Community 2019VTK-9.3.0.rc0vtk-example参考代码目的&#xff1a;学习与总结 demo解决问题&#xff1a;统计输入文本中字母出现的频率&#xff0c;不区分大小写&#xff0c;使用3D可是化方式进行显示&…

Floor报错注入理论及实战

rand()函数&#xff1a;随机返回0-1之间的小数 floor()函数&#xff1a;小数向下取证书。向上取整数ceiling() concat_ws函数&#xff1a;将括号内数据用第一个字段连接起来 group by子句&#xff1a;分组语句&#xff0c;常用语结合统计函数&#xff0c;根据一个或多个列&a…

Spring Security使用总结五,加密用户密码,不再使用明文保存密码

上一章我们成功的注册了一个新用户&#xff0c;按照正常逻辑来说&#xff0c;这一章应该是登录了&#xff0c;但是我们也看到了&#xff0c;这数据库保存的居然是明文密码&#xff0c;这谁受得了&#xff0c;这要是用户信息泄露了&#xff0c;这不让人一锅端了啊&#xff0c;还…

LeetCode | 21. 合并两个有序链表

LeetCode | 21. 合并两个有序链表 OJ链接 定义一个新链表&#xff0c;把小的结点尾插到新的链表注意在插入新的链表中&#xff0c;1. 空链表&#xff0c;插入的节点就是链表的头节点和尾结点。2. 非空链表&#xff0c;插入的节点就是链表的新的尾结点&#xff0c;头结点不变…

Lazarus安装和入门资料

azarus-2.2.6-fpc-3.2.2-win64 下载地址 Lazarus 基础教程 - Lazarus Tutorials for Beginners Lazarus Tutorial #1 - Learning programming_哔哩哔哩_bilibili https://www.devstructor.com/index.php?pagetutorials Lazarus是一款开源免费的object pascal语言RAD IDE&…

【Linux权限:系统中的数字锁与安全之门】

1.Linux下的用户 Linux下有两种用户&#xff1a;超级用户&#xff08;root&#xff09;、普通用户。 超级用户&#xff1a;可以再linux系统下做任何事情&#xff0c;不受限制普通用户&#xff1a;在linux下做有限的事情。超级用户的命令提示符是“#”&#xff0c;普通用户的命令…

HashMap 是怎么解决哈希冲突的?

&#xff08;本文摘自mic老师面试文档&#xff09; 常用数据结构基本上是面试必问的问题&#xff0c;比如 HashMap、LinkList、 ConcurrentHashMap 等。 关于 HashMap&#xff0c;有个学员私信了我一个面试题说&#xff1a; “HashMap 是怎么解决哈希冲突 的&#xff1f;” …

Redis极速上手开发手册【Redis全面复习】

文章目录 什么是RedisRedis的特点Redis的应用场景Redis安装部署Redis基础命令Redis多数据库特性Redis数据类型Redis数据类型之stringRedis数据类型之hashRedis数据类型之listRedis数据类型之setRedis数据类型之sorted set案例&#xff1a;存储高一班的学员信息 Redis封装工具类…

DevExpress WinForms桑基图组件,开创大数据流可视化新方式!

界面控件DevExpress WinForms能帮助开发者创建信息丰富的WinForms应用程序&#xff0c;使用其Sankey Diagram&#xff08;桑基图&#xff09;控件&#xff0c;您可以非常轻松地可视化大数据的数据流。 DevExpress WinForms有180组件和UI库&#xff0c;能为Windows Forms平台创…

获奖名单出炉 ,鲲鹏应用创新大赛2023全国总决赛圆满落幕

11月2日&#xff0c;以“数智未来 因你而来”为主题的鲲鹏应用创新大赛2023全国总决赛在四川成都顺利举办。经过长达6个月的层层筛选与激烈角逐&#xff0c;最终从三大赛事、5大赛道中评选出了13个金奖、16个银奖、19个铜奖。 鲲鹏应用创新大赛是面向全球开发者的顶级赛事&…

DxO照片处理工具合集:FilmPack+PureRAW+PhotoLab+ViewPoint中文版

DxO照片处理工具合集是一款强大而全面的图像处理软件&#xff0c;它可以帮助您提升照片的质量&#xff0c;使其更加出色。无论您是一名专业摄影师&#xff0c;还是一个热爱摄影的业余爱好者&#xff0c;DxO照片处理工具合集都能满足您的需求&#xff0c;让您的照片更加出众&…

单元测试框架----UnitTest框架

UnitTest框架核心要点&#xff1a;TestCase(测试用例)、TestSuite(测试套件)、TextTestRunner&#xff08;测试执行器&#xff09;、TextTestResult&#xff08;测试报告&#xff09;、Fixture&#xff08;测试夹具&#xff09; TestSuite 步骤&#xff1a; 步骤1&#xff1a…

git解决冲突的方法。

1、 cherry-pick git fetch ssh://jingyou.caigerrit.transtekcorp.com:29418/leshan refs/changes/23/34123/3 && git cherry-pick FETCH_HEAD2、 文件解冲突&#xff01; 3、 cherry-pick完整。 git cherry-pick --continue4、查看状态。 5、 push。 git push o…

ChatGPT如何管理对话历史?

问题 由于现在开始大量使用ChatGPT对话功能&#xff0c;认识到他在提供启发方面具有一定价值。比如昨天我问他关于一个微习惯的想法&#xff0c;回答的内容还是很实在&#xff0c;而且能够通过他的表达理解自己的问题涉及到的领域是什么。 此外&#xff0c;ChatGPT能够总结对话…

Stable Diffusion:最先进的文本生成图像模型

稳定扩散 生成式 AI 技术正在迅速发展&#xff0c;现在可以简单地根据文本输入生成文本和图像。Stable Diffusion 是一种文本到图像模型&#xff0c;使您能够创建逼真的应用程序。 扩散模型通过学习去除添加到真实图像中的噪声进行训练。这种降噪过程会产生逼真的图像。这些模…

第一章《补基础:不怕学不懂微积分》笔记

微积分包含众多知识点&#xff0c;例如极限概念、求导公式、乘积法则、链式法则、隐函数求导、 积分中值定理、泰勒公式等。其中&#xff0c;研究导数、微分及其应用的部分一般称为微分学&#xff0c;研究不定积分、定积分及其应用的部分一般称为积分学。微分学和积分学统称为微…

增强swagger

<dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>${org.springdoc.version}</version> </dependency> Swagger版本要与springboot 版本对应 2.1.0 -&…