相关疑难解决方法(0)

Julia Plotting:删除和修改现有行

两个问题合二为一:鉴于在 Julia 中绘制的一条线,我如何才能

  1. 从情节和图例中删除它(不清除整个情节)
  2. 更改其属性(如颜色、厚度、不透明度)

作为下面代码中的一个具体示例,我如何 1. 删除以前的回归线或 2. 将它们的不透明度更改为 0.1?

using Plots; gr()

f = x->.3x+.2
g = x->f(x)+.2*randn()

x = rand(2)
y = g.(x)
plt = scatter(x,y,c=:orange)
plot!(0:.1:1, f, ylim=(0,1), c=:green, alpha=.3, linewidth=10)

anim = Animation()
for i=1:200
    r = rand()
    x_new, y_new = r, g(r)
    push!(plt, x_new, y_new)
    push!(x, x_new)
    push!(y, y_new)
    A = hcat(fill(1., size(x)), x)
    coefs = A\y
    plot!(0:.1:1, x->coefs[2]*x+coefs[1], c=:blue)  # plot new regression line
    # 1. delete previous line
    # 2. set alpha …
Run Code Online (Sandbox Code Playgroud)

plot setattribute julia

6
推荐指数
2
解决办法
1474
查看次数

Matplotlib动画:通过子图的垂直光标线

[解决方案已添加到此帖子的EDIT部分中]

2个动画子图垂直堆叠。

我想根据鼠标位置在它们之间显示一条黑色垂直线。

到目前为止,移动鼠标时我只能完全弄乱这个身影。

如何清除更新之间的旧垂直线?

(只是出于好奇:由于具有鼠标移动控制功能,即使不移动鼠标,我的PC风扇在执行代码时也会发疯。鼠标是否“计算成本很高”?!?)

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from time import sleep

val1 = np.zeros(100)         
val2 = np.zeros(100)      

level1 = 0.2
level2 = 0.5

fig, ax = plt.subplots()

ax1 = plt.subplot2grid((2,1),(0,0))
lineVal1, = ax1.plot(np.zeros(100))
ax1.set_ylim(-0.5, 1.5)    

ax2 = plt.subplot2grid((2,1),(1,0))
lineVal2, = ax2.plot(np.zeros(100), color = "r")
ax2.set_ylim(-0.5, 1.5)    


def onMouseMove(event):
  ax1.axvline(x=event.xdata, color="k")
  ax2.axvline(x=event.xdata, color="k")



def updateData():
  global level1, val1
  global level2, val2

  clamp = lambda n, minn, maxn: max(min(maxn, n), minn) …
Run Code Online (Sandbox Code Playgroud)

python mouse animation matplotlib cursor

5
推荐指数
1
解决办法
3845
查看次数

仅清除matplotlib图的一部分

我正在使用嵌入在WxPython GUI中的matplotlib图来呈现一些数据.图中的内容(显示的数据)随点击按钮的功能不断变化,...

数据有两种类型.

1)轮廓线

self.axes.contour(x_scale_map,y_scale_map,matrix,cl,cmap=my_cmap,extent=0,matrix.shape[1]-1,0,matrix.shape[0]-1))
Run Code Online (Sandbox Code Playgroud)

加载速度相对较慢(~1s),但不会经常变化.

2)在这个轮廓的顶部,我绘制了一些例如线条

self.axes.axhline(y,color='black')
Run Code Online (Sandbox Code Playgroud)

这些线条显然是立即绘制的,并且经常根据用户点击的内容进行更改.在这些情况下,先前绘制的线条需要消失,新的线条需要出现,而等高线图保持不变.

现在,我的问题如下.我还没有找到一种方法只删除线条而不是轮廓.获得所需结果的唯一方法似乎是:

self.axes.clear()
Run Code Online (Sandbox Code Playgroud)

然后重新绘制轮廓和新线.但如上所述,每次重新加载轮廓都很慢,因而很烦人.

有没有办法只清除图中的线条?我试图通过做类似的事情来使用叠加的子图:

self.axes1 = self.fig.add_subplot(111)
self.axes2 = self.fig.add_subplot(111)
self.axes1.contour(...)
self.axes2.axhline(y,color='black')
self.axes2.clear()
Run Code Online (Sandbox Code Playgroud)

但是最后一行清除了整个数字.

有谁知道如何实现所需的功能?谢谢

matplotlib

4
推荐指数
1
解决办法
4872
查看次数

删除 matplotlib 中的行

我需要删除子图上的所有线条,然后重绘它们(我正在制作一个重绘函数,以便在添加/删除一些线条时使用)我该怎么做?

matplotlib

2
推荐指数
1
解决办法
6705
查看次数

标签 统计

matplotlib ×3

animation ×1

cursor ×1

julia ×1

mouse ×1

plot ×1

python ×1

setattribute ×1