Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在图形顶部绘制一块颜色块,以在python中创建轨迹_Python_Patch_Alpha - Fatal编程技术网

在图形顶部绘制一块颜色块,以在python中创建轨迹

在图形顶部绘制一块颜色块,以在python中创建轨迹,python,patch,alpha,Python,Patch,Alpha,我有一组数据,我正在用pylab绘制,它会随着时间的推移而变化 我可以将每个帧存储为.png格式,并使用iMovie将它们放在一起,但我想在绘图中添加轨迹,以说明以前时间点的位置 我认为可以做到这一点的一种方法是在图形上设置plt.hold(True),然后用(透明度值)alpha绘制一个轴大小的白色块。另一种在一系列绘图上实现褪色轨迹的方法是使用.set_alpha()方法更改绘制项目的alpha值,如果它可用于正在使用的特定打印方法 可以通过将正在使用的特定绘图函数的输出(即绘图的“句柄”)

我有一组数据,我正在用pylab绘制,它会随着时间的推移而变化

我可以将每个帧存储为.png格式,并使用iMovie将它们放在一起,但我想在绘图中添加轨迹,以说明以前时间点的位置


我认为可以做到这一点的一种方法是在图形上设置plt.hold(True),然后用(透明度值)alpha绘制一个轴大小的白色块。另一种在一系列绘图上实现褪色轨迹的方法是使用
.set_alpha()
方法更改绘制项目的alpha值,如果它可用于正在使用的特定打印方法

可以通过将正在使用的特定绘图函数的输出(即绘图的“句柄”)附加到列表中来实现这一点。然后,在每个新绘图之前,您可以找到并减少该列表中每个现有项的alpha值

在以下示例中,使用
.remove()
将alpha值下降超过某个点的项目从绘图中删除,然后从列表中删除其句柄

import pylab as pl

#Set a decay constant; create a list to store plot handles; create figure.
DECAY = 2.0
plot_handles = []
pl.figure()

#Specific to this example: store x values for plotting sinusoid function
x_axis=pl.linspace( 0 , 2 * pl.pi , 100 )

#Specific to this example: cycle 50 times through 16 different sinusoid
frame_counter = 0
for phase in pl.linspace( 0 , 2 * pl.pi * 50 , 16 * 50 ):

    #Reduce alpha for each old item, and remove
    for handle in plot_handles:
        alpha = handle.get_alpha()
        if alpha / DECAY > 0.01 :
          handle.set_alpha( alpha / DECAY )
        else:
          handle.remove()
          plot_handles.remove( handle )

    #Add new output of calling plot function to list of handles
    plot_handles += pl.plot( pl.sin( x_axis + phase ) , 'bo' )

    #Redraw figure
    pl.draw()

    #Save image
    pl.savefig( 'frame_' + str( frame_counter ).zfill( 8 ) + '.png' )
    frame_counter += 1