gpt4 book ai didi

python - 在不影响绘图的情况下更改刻度标签

转载 作者:太空宇宙 更新时间:2023-11-04 01:05:41 31 4
gpt4 key购买 nike

我正在使用 matplotlib 在 python 中绘制一个二维数组,但在格式化刻度线时遇到了问题。所以首先,我的数据目前被组织为一个二维数组(海拔,纬度)。我正在绘制作为高度和纬度函数的电子密度值(基本上是特定时间的纵向切片)。

我想用 30 度的间隔标记从 -90 到 90 度的 x 轴,并用另一个高程数组标记 y 值(每个模型运行都有不同的高程值,所以我不能手动分配任意高程)。我有包含纬度值的数组和另一个包含高程值的数组,这两个数组都是一维数组。

这是我的代码:

from netCDF4 import Dataset
import numpy as np
import matplotlib.pyplot as plt

#load the netcdf file into a variable
mar120="C:/Users/WillEvo/Desktop/sec_giptie_cpl_mar_120.nc"

#grab the data into a new variable
fh=Dataset(mar120,mode="r")

#assign model variable contents to python variables
lons=fh.variables['lon'][:]
lats=fh.variables['lat'][:]
var1=fh.variables['UN'][:]

#specifying which time and elevation to map
ionst=var1[0,:,:,21]
ionst=ionst[0:len(ionst)-1]

#close the netCDF file
fh.close()

#Set the figure, size, and resolution
plt.figure(figsize=(8,6), dpi=100, facecolor='white')
plt.subplot(1,1,1)

plt.imshow(ionst, origin='lower', interpolation='spline16')

plt.xticks([-90, -60, -30, 0, 30, 60, 90])
plt.show()

如果我不包括 plt.xticks 参数,我会得到以下好的图像,但刻度标签不正确:

Good Image but bad tick labeling

如果我包含 plt.xticks 参数,我会得到以下结果:

Bad figure, data remains static

我该如何解决这个问题?我希望数据跟随轴的变化(但要准确)。我还需要为 y 轴执行此操作,但无需手动输入值,而是提供一组值。谢谢

最佳答案

使用imshowextent参数设置图像的x和y范围,使用aspect='auto'允许要调整以适合图形的图像的纵横比。比如下面的代码

In [68]: from scipy.ndimage.filters import gaussian_filter

In [69]: np.random.seed(12345)

In [70]: a = np.random.randn(27, 36)

In [71]: b = gaussian_filter(a, 4)

In [72]: ymin = 0

In [73]: ymax = 1

In [74]: plt.imshow(b, origin='lower', extent=[-90, 90, ymin, ymax], aspect='auto')
Out[74]: <matplotlib.image.AxesImage at 0x1115f02d0>

In [75]: plt.xticks([-90, -60, -30, 0, 30, 60, 90])
Out[75]:
([<matplotlib.axis.XTick at 0x108307cd0>,
<matplotlib.axis.XTick at 0x1101c1c50>,
<matplotlib.axis.XTick at 0x1115d4610>,
<matplotlib.axis.XTick at 0x1115f0d90>,
<matplotlib.axis.XTick at 0x1115ff510>,
<matplotlib.axis.XTick at 0x11161db10>,
<matplotlib.axis.XTick at 0x111623090>],
<a list of 7 Text xticklabel objects>)

生成此图:

image

关于python - 在不影响绘图的情况下更改刻度标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30607700/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com