matplotlib的3D缩放被窃听了?

z3yyvxxp  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(82)

我试图绕过matplotlib的限制,它不能单独缩放轴。在试图通过在每个轴上放置一个点来实现这一点。奇怪的是,它告诉我,

.../matplotlib/collections.py:1003:RuntimeWarning: invalid value encountered in sqrt
  scale = np.sqrt(self._sizes) * dpi / 72.0 * self._factor

这是我的代码

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from itertools import permutations

fig = plt.figure()
ax = Axes3D(fig)
a = np.array(list(set(permutations((1, 0, 0), 3)) | set(permutations((-1, 0, 0), 3))))
plt.scatter(a[:, 0], a[:, 1], a[:, 2])
n3ipq98p

n3ipq98p1#

我遇到了类似的问题,发现调用ax.scatter(...)可以工作(而plt.scatter(...)对我来说也不行)。我还必须更改您给出的代码示例中的axis对象的创建。下面是为我工作的代码:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from itertools import permutations

fig = plt.figure()
ax = fig.add_subplot(projection='3d')
a = np.array(list(set(permutations((1, 0, 0), 3)) | set(permutations((-1, 0, 0), 3))))
ax.scatter(a[:, 0], a[:, 1], a[:, 2])
plt.show(block=True)

注意,axis对象是用ax = fig.add_subplot(projection='3d')创建的。希望对你有帮助!

相关问题