我的df有4列: x、y、z和grouping。我已经创建了一个3D图,每个点的指定颜色由它在该行中所属的分组决定。作为参考,grouping可以是从1到6的任意数字。代码如下:
fig = plt.figure()
ax = Axes3D(fig)
ax.scatter3D(df.x, df.y, df.z, c=df.grouping)
plt.show()
我想在图上显示一个图例,说明哪种颜色属于哪一组。以前,我使用Seaborn进行2D打印,图例会自动打印。如何使用matplotlib添加此功能?
发布于 2019-10-04 19:37:18
如果要进行颜色映射的值是数值,则解决方案可以像下面这样简单:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
a = np.random.rand(3,40)
c = np.random.randint(1,7, size=a.shape[1])
fig = plt.figure()
ax = fig.add_subplot(111, projection="3d")
sc = ax.scatter3D(*a, c=c)
plt.legend(*sc.legend_elements())
plt.show()
https://stackoverflow.com/questions/58241821
复制