我正在尝试使极热图逐渐出现。我希望通过向现有地块添加一个增量器来增加地块。始终使用相同的最大半径。
现在我也重新绘制旧数据,但这仅仅是因为我不知道如何添加到现有图中。
如何将新角度的z值添加到现有的热图?
这里接受的答案显示了如何绘制极坐标热图: Polar heatmaps in python
在下面的代码中,根据r和th计算z值。但是我的情况是我改为从文件中读取值。 如何将它们添加到热图?
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import time
fig = plt.figure()
ax = Axes3D(fig)
angle = 0
rad = np.linspace(0, 5, 100)
d_angle = np.pi/100
while angle < np.pi:
azm = np.linspace(0, angle, 100)
r, th = np.meshgrid(rad, azm)
z = r/5
plt.subplot(projection="polar")
plt.pcolormesh(th, r, z)
plt.plot(azm, r, color='k', ls='none')
plt.grid()
plt.ion()
plt.show()
plt.pause(0.0001)
plt.clf()
angle += d_angle
我不知道从哪里开始。任何指向文档的指针?还是其他建议?
答案 0 :(得分:0)
您可以通过查看plot
从ax.lines
检索数据。像plt.plot(azm, r, color='k', ls='none', gid="a custom name")
一样在曲线上添加一个“ gid”,然后我们要做一些工作:
def append_data_to_curve(ax, gid):
for line in ax.lines: # Check every curve.
if line.get_gid() == "a custom name": # If the one you seek is found:
X = line.get_xdata() # Get its X and Y data.
Y = line.get_ydata()
X.append(x) # Add the new point (x,y) you want.
Y.append(y)
line.set_xdata(X) # Put back the modified list as curve data.
line.set_ydata(Y)
您可以为循环的每次迭代调用此函数,并通过为其赋予(x,y)坐标来添加单个新点。