gpt4 book ai didi

python - 从 Matplotlib 集合中检索标记

转载 作者:行者123 更新时间:2023-12-01 09:24:38 25 4
gpt4 key购买 nike

我正在寻找从 Matplotlib 集合中检索标记类型。

我可以通过调用 collection.get_linestyle()、collection.get_linewidth() 等从集合中检索看似所有其他属性的内容,但似乎没有标记选项。我还可以从 matplotline.line.line2d 检索标记类型。

有没有办法从集合中检索标记类型?

最佳答案

我认为您无法检索 PathCollection 中使用的标记类型(即散点图中)。此信息不会按原样存储在集合中。但是,标记存储为 Path 对象(因此是集合的名称)。

例如:

fig, ax = plt.subplots()
a = ax.scatter([0],[0],marker='v')
b = ax.scatter([1],[0],marker='s')

a.get_paths()

(Path(array([[-6.123234e-17, -5.000000e-01], [ 5.000000e-01, 5.000000e-01], [-5.000000e-01, 5.000000e-01], [-6.123234e-17, -5.000000e-01]]), array([ 1, 2, 2, 79], dtype=uint8)),)

正如您猜测的那样,三角形标记由 4 个点定义(请注意,最后一个点等于第一个点,因此形状是闭合的)。

b.get_paths()

(Path(array([[-0.5, -0.5], [ 0.5, -0.5], [ 0.5, 0.5], [-0.5, 0.5], [-0.5, -0.5]]), array([ 1, 2, 2, 2, 79], dtype=uint8)),)

相反,方形标记由 5 个点定义(最后一个点 == 第一个点)。

如果目标是将此标记复制到新集合,您应该能够复制 Path 对象。如果您需要以某种方式检测使用了哪个标记,您可以保留 Paths 对象列表(如上生成)并将返回的 Path 与该列表进行比较。

关于python - 从 Matplotlib 集合中检索标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50533934/

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