gpt4 book ai didi

matplotlib - 在 matplotlib 图中标记最小值点

转载 作者:行者123 更新时间:2023-12-03 21:24:47 25 4
gpt4 key购买 nike

示例代码:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
xlist = [1, 2, 3, 4, 5]
ylist = [1, 5, 3, 4, 2]
zlist = [6, -3, 6, -1, 2]
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(xlist, ylist, zlist)
plt.ticklabel_format(useOffset=False)
plt.show()

一个简单的 3d 散点图...假设我希望最小点(在 z 轴上)是不同的颜色。所以那个点是第二个点:x = 2,y = 5,z = -3。实现这一目标的最简单方法是什么? (注意:如果最小值并列,则应突出显示所有最小值)

我的解决方法是使用 minzlist 中找到最小值,然后说 min_index = zlist.index(min(zlist)) ,然后在 min_index 中删除条目(并保存)来自 xlist , ylist , 和 zlist .然后用另一个 ax.scatter 单独绘制该点命令只有一点(最小值)。但这似乎很不雅观,而且不适用于领带。

最佳答案

您可以使用 NumPy 在 zlist 中找到最小值并生成一个 bool 数组,它是 True 其中 zlist等于 zmin (注意这可能发生不止一次)。然后使用 np.where生成一个数组,它是 redmaskTrueblue除此以外:

zmin = np.min(zlist)
mask = np.array(zlist) == zmin
color = np.where(mask, 'red', 'blue')

然后你可以通过 color=colorax.scatter创建所需的散点图:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

xlist = [1, 2, 3, 4, 5]
ylist = [1, 5, 3, 4, 2]
zlist = [6, -3, 6, -1, 2]
zmin = np.min(zlist)
mask = np.array(zlist) == zmin
color = np.where(mask, 'red', 'blue')
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(xlist, ylist, zlist, color=color)
plt.ticklabel_format(useOffset=False)
plt.show()

enter image description here

关于matplotlib - 在 matplotlib 图中标记最小值点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48774940/

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