如何在不改变轴刻度的情况下将线函数(x=)插入虹膜数据立方体图?
How to insert line function (x=) onto iris data cube graph without changing axis scale?
我试图在 hr=2 处在我的数据集上绘制一条线,但是由于某种原因它使我的 x 轴比例改变了大约 35 年。
该数据集在 6 小时内有 420 个数据点,因此是中间两行的数字。
fig= plt.figure(figsize=(9,2.7))
iplt.plot(pressure_no1, color='black')
plt.plot(np.linspace(-2, 4, 20), pressure_no1.data)
plt.axvline(0)
plt.xlabel('Time / hour of day')
plt.ylabel('Atmospheric pressure / kPa')
iplt.show()
这段代码给我这张图:
skewed scale graph
最左边蓝线是插入的函数线,最右边是实际数据
实际比例应该是这样的:
original graph
请帮忙,我不知道如何解决这个问题。提前致谢:)
由于您是根据时间绘制立方体,因此您可能需要使用 datetime
:
指定垂直线
import datetime
import iris
import iris.quickplot as qplt
import numpy as np
import matplotlib.pyplot as plt
measures = np.random.normal(size=(360, ))
timepoints = np.arange(start=0, stop=360)
cube = iris.cube.Cube(measures, long_name='atmospheric_pressure', units='kPa')
time_coord = iris.coords.DimCoord(
timepoints, units='minutes since 2020-07-01 00:00', standard_name='time')
cube.add_dim_coord(time_coord, 0)
qplt.plot(cube, color='k')
plt.axvline(datetime.datetime(2020, 7, 1, 2, 0), color='b')
plt.show()
我试图在 hr=2 处在我的数据集上绘制一条线,但是由于某种原因它使我的 x 轴比例改变了大约 35 年。 该数据集在 6 小时内有 420 个数据点,因此是中间两行的数字。
fig= plt.figure(figsize=(9,2.7))
iplt.plot(pressure_no1, color='black')
plt.plot(np.linspace(-2, 4, 20), pressure_no1.data)
plt.axvline(0)
plt.xlabel('Time / hour of day')
plt.ylabel('Atmospheric pressure / kPa')
iplt.show()
这段代码给我这张图: skewed scale graph 最左边蓝线是插入的函数线,最右边是实际数据
实际比例应该是这样的: original graph
请帮忙,我不知道如何解决这个问题。提前致谢:)
由于您是根据时间绘制立方体,因此您可能需要使用 datetime
:
import datetime
import iris
import iris.quickplot as qplt
import numpy as np
import matplotlib.pyplot as plt
measures = np.random.normal(size=(360, ))
timepoints = np.arange(start=0, stop=360)
cube = iris.cube.Cube(measures, long_name='atmospheric_pressure', units='kPa')
time_coord = iris.coords.DimCoord(
timepoints, units='minutes since 2020-07-01 00:00', standard_name='time')
cube.add_dim_coord(time_coord, 0)
qplt.plot(cube, color='k')
plt.axvline(datetime.datetime(2020, 7, 1, 2, 0), color='b')
plt.show()