首页 > 编程语言 >常用的Python代码片段(绘图)

常用的Python代码片段(绘图)

时间:2024-02-25 14:23:33浏览次数:23  
标签:crs 片段 set Python feature add 绘图 cartopy ax

Proplot绘制具有经纬网的地图

import proplot as pplt
import cartopy

fig, ax = pplt.subplots(proj=['cyl'],ncols=1,nrows=1)
ax.add_feature(cartopy.feature.COASTLINE)
ax.add_feature(cartopy.feature.BORDERS, linestyle=':', linewidth=0.5)
ax.add_feature(cartopy.feature.LAND)
ax.add_feature(cartopy.feature.OCEAN)
ax.add_feature(cartopy.feature.LAKES, alpha=0.3)
ax.add_feature(cartopy.feature.RIVERS,alpha=0.3)
ax.format(
        reso='hi',
        lonlim=(-20,55),latlim=(-38,38),
        labels=True,
        gridlinewidth=0.5,
        grid=True,
        gridstyle='--',
        lonlocator=range(-10,55,15),
        latlocator=range(-30,40,15),
)
# ax.spines['top'].set_visible(False)
# ax.spines['bottom'].set_visible(False)
# ax.spines['right'].set_visible(False)
# ax.spines['left'].set_visible(False)
fig.save(f"maps/name.png", dpi=400)

Cartopy绘制具有经纬网的地图

import matplotlib.pyplot as plt
import cartopy

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection=cartopy.crs.PlateCarree())
ax.set_extent([-20, 60, -40, 45], crs=cartopy.crs.PlateCarree())
ax.add_feature(cartopy.feature.COASTLINE)
ax.add_feature(cartopy.feature.BORDERS, linestyle=':', linewidth=0.5)
ax.add_feature(cartopy.feature.LAND)
ax.add_feature(cartopy.feature.OCEAN)
ax.add_feature(cartopy.feature.LAKES, alpha=0.3)
ax.add_feature(cartopy.feature.RIVERS, alpha=0.3)
ax.set_xticks(range(-10, 55, 15), crs=cartopy.crs.PlateCarree())  #添加经纬度
ax.set_yticks(range(-30, 40, 15), crs=cartopy.crs.PlateCarree())
ax.xaxis.set_major_formatter(LongitudeFormatter())
ax.yaxis.set_major_formatter(LatitudeFormatter())
ax.gridlines(
	xlocs=range(-10, 55, 15),
	ylocs=range(-30, 40, 15),
	linestyle='--',
	linewidth=0.5
)
plt.tight_layout()
plt.savefig(f"maps/name.png", dpi=400)

设置中文字体

import matplotlib
import matplotlib.pyplot as plt
matplotlib.font_manager.fontManager.addfont("/home/lixg/.fonts/msyh.ttf")
# 查看字体名以及对应的字体文件名
# for font in font_manager.fontManager.ttflist:
#     print(font.name, '-', font.fname)
plt.rcParams["font.family"] = "Microsoft Yahei"

cartopy/proplot中使用arcgis online底图

import cartopy.io.img_tiles as cimgt
basemap = cimgt.GoogleTiles(url='https://server.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer/tile/{z}/{y}/{x}.jpg')
ax.add_image(basemap,5)

代码中的url可以替换成其他底图,更多底图可参考这个网站 https://server.arcgisonline.com/ArcGIS/rest/services/
比如:https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}.jpg

修改colorbar为分类图例

m = axs[1].scatter(
    x=data_id['lon'], y=data_id['lat'],
    c=data_id['y_pred_cls'],
    cmap='spectral', marker='o', markersize=1,)
# 创建图例并为每个标记设置自定义标签
handles, labels = m.legend_elements()
legend_labels = ['Extreme poverty', 'Poverty', 'Non-poverty']
axs[1].legend(handles, legend_labels,loc='ur',ncols=1)

image

标签:crs,片段,set,Python,feature,add,绘图,cartopy,ax
From: https://www.cnblogs.com/geoli/p/18032355

相关文章

  • Python 相关知识-1
    1.Python内存泄漏和内存溢出是两种不同的问题,但它们都与内存管理有关.内存泄漏是指在使用动态分配的内存时,由于某些原因导致某些已分配的内存块无法被释放,从而使得程序占用的内存不断增加,最终导致内存耗尽。在Python中,内存泄漏可能由多种原因引起,例如全局变量、闭包、循环......
  • Python中生成器和迭代器的概念及两者区别
    本文详细介绍Python中生成器和迭代器的概念及两者区别。并通过一个案例分析两者在实际应用中的性能差异。 生成器生成器是一种特殊类型的迭代器,它使用函数和yield关键字定义,可以像普通函数一样调用和执行。生成器在每次迭代时产生一个值,并在下一次迭代时恢复执行。 在......
  • 【Python】 回文数的四种解法
    回文数就是指整数倒过来和原整数相等。1234Example1:  Input:121Output:true12345Example2:  Input:-121Output:falseExplanation:Fromlefttoright,itreads-121.Fromrighttoleft,itbecomes121-.Therefore......
  • python——面向对象——知识汇总
    面向对象技术简介类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。方法:类中定义的函数。类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。......
  • Python函数每日一讲1 - 一文让你彻底掌握Python中的frozenset函数
    引言在Python中,frozenset()函数是一个重要的工具,用于创建不可变的集合对象。本文将介绍frozenset()函数的语法、用法示例以及实际应用场景,帮助大家更好地理解和应用这个函数。语句概览frozenset()函数的语法如下:frozenset(iterable)其中,iterable是一个可迭代对象,例如......
  • Python 字符串格式化输出
    数字n:int=1000000000print(f'{n:_}')#1_000_000_000print(f'{n:,}')#1,000,000,000对齐var:str='var'#右对齐,使用_填充print(f'{var:_>20}')#_________________var#左对齐,使用#填充print(f'{var:#<20}�......
  • python dict 哈希表
    哈希值Python 内置函数 hash 返回对象 哈希值 ,哈希表 依赖 哈希值 索引元素:根据哈希表性质, 键对象 必须满足以下两个条件,否则哈希表便不能正常工作:哈希值在对象整个生命周期内不能改变;可比较,且比较相等的对象哈希值必须相同;满足这两个条件的对象便是......
  • python GIL 全局锁
    GIL由来我们先思考一个问题:我们在前面介绍的 list 、 dict 等内建对象是 线程安全 的吗?在 Python 层面,list 、dict 等内建对象是线程安全的,这是最基本的常识。研究 list、dict 等内建对象源码时,我们并没有看到任何 互斥锁 的痕迹,这多少有点令人意外。以 li......
  • python 内存优化
    Python 内存管理层次:众所周知,计算机硬件资源由操作系统负责管理,内存资源也不例外。应用程序通过 系统调用 向操作系统申请内存,而 C 库函数则进一步将系统调用封装成通用的 内存分配器 ,并提供了 malloc 系列函数。C 库函数实现的通用目的内存管理器是一个重要......
  • python 对象
    面向对象理论中“ 类 ”和“ 对象 ”这两个重要概念,在 Python 内部均以对象的形式存在。“类”是一种对象,称为 类型对象 ;“类”实例化生成的“对象”也是对象,称为 实例对象 。根据对象不同特点还可进一步分类:类别特点可变对象对象创建后可以修改不可......