gpt4 book ai didi

python-2.7 - python动画中的十字线

转载 作者:行者123 更新时间:2023-12-02 21:43:30 27 4
gpt4 key购买 nike

所以我正在使用 matplotlib.animation 制作一些动画。我绘制的所有图形都是圆圈,但随着我不断地使事情变得更复杂,我的一个圆圈变得太小了。我环顾四周试图找出 pyplot 是否有像 pyplot.Circle 这样的十字线命令,但我没有成功。那里的任何人都知道 pyplot 中内置了类似的东西,或者我是否必须构建自己的函数来执行此操作?

最佳答案

我不太明白你在问什么。

由于我目前正在阅读您的问题,所以我无法判断您要的是这些选项中的哪一个。

  1. 随鼠标移动的交互式“十字线”。
  2. 横跨轴延伸的静态“十字线”。
  3. 要放置的“+”样式标记而不是圆圈。

对于第一个选项,请查看 matplotlib.widgets.Cursor。这里有一个例子:http://matplotlib.org/examples/widgets/cursor.html

from matplotlib.widgets import Cursor
import numpy as np
import matplotlib.pyplot as plt


fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111, axisbg='#FFFFCC')

x, y = 4*(np.random.rand(2, 100)-.5)
ax.plot(x, y, 'o')
ax.set_xlim(-2, 2)
ax.set_ylim(-2, 2)

# set useblit = True on gtkagg for enhanced performance
cursor = Cursor(ax, useblit=True, color='red', linewidth=2 )

plt.show()

对于第二种,使用axhlineaxvline。例如:

import matplotlib.pyplot as plt

def cross_hair(x, y, ax=None, **kwargs):
if ax is None:
ax = plt.gca()
horiz = ax.axhline(y, **kwargs)
vert = ax.axvline(x, **kwargs)
return horiz, vert

cross_hair(0.2, 0.3, color='red')
plt.show()

enter image description here


最后,如果您想要用 + 标记代替圆圈,只需使用 ax.plotax.scatter

例如

fig, ax = plt.subplots()
marker, = ax.plot([0.2], [0.3], linestyle='none', marker='+')

或者:

fig, ax = plt.subplots()
marker = ax.scatter([0.2], [0.3], marker='+')

enter image description here

您可以手动构建标记(使用 Line2D 最简单,但您也可以使用 matplotlib.markers.MarkerStyle('+').get_path() 来获取原始路径,然后设置适合的位置和大小),但这通常比它的值(value)要麻烦得多。

关于python-2.7 - python动画中的十字线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19935445/

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