当前位置: 首页 > 面试题库 >

在Matplotlib中使用scatter()在3D散点图中添加图例

郤立果
2023-03-14
问题内容

我想在同一图中创建具有不同数据集的3D散点图,并在其标签中创建图例。我面临的问题是我无法正确添加图例,并且得到了带有空标签的图,如图所示:

http://tinypic.com/view.php?pic=4jnm83&s=5#.Uqd-05GP-
gQ

更具体地说,我得到了错误:

/usr/lib/pymodules/python2.7/matplotlib/legend.py:610: UserWarning: Legend does not support <mpl_toolkits.mplot3d.art3d.Patch3DCollection object at 0x3bf46d0>
Use proxy artist instead."

请在下面找到我到目前为止尝试过的示例演示:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import random
import csv
from os import listdir
from os.path import isfile, join

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

handles = []
colors = ['blue', 'red']

X1 = range(0,10)
Y1 = range(0,10)
Z1 = range(0,10)

random.shuffle(X1)
random.shuffle(Y1)
random.shuffle(Z1)

scatter1 = ax.scatter(X1, Y1, Z1, c = colors[0], marker = 'o')

random.shuffle(X1)
random.shuffle(Y1)
random.shuffle(Z1)

scatter2 = ax.scatter(X1, Y1, Z1, c = colors[1], marker = 'v')

ax.set_xlabel('X', fontsize = 10)
ax.set_ylabel('Y', fontsize = 10)
ax.set_zlabel('Z', fontsize = 10)

ax.legend([scatter1, scatter2], ['label1', 'label2'])

plt.show()

我看过其他大致相似的示例,但没有一个使用scatter()图。除了可行的解决方案之外,有人可以解释我做错了什么吗?


问题答案:
scatter1_proxy = matplotlib.lines.Line2D([0],[0], linestyle="none", c=colors[0], marker = 'o')
scatter2_proxy = matplotlib.lines.Line2D([0],[0], linestyle="none", c=colors[1], marker = 'v')
ax.legend([scatter1_proxy, scatter2_proxy], ['label1', 'label2'], numpoints = 1)

问题在于,图例功能不支持3D散点图返回的类型。因此,您必须创建一个具有相同特征的“虚拟情节”,并将其放在图例中。

numpoints = 1只能在图例中获得一个点linestyle =
“ none”因此,图例中没有绘制线



 类似资料:
  • 以下是散点图的示例。 我们已经在Google Charts Configuration Syntax一章中看到了用于绘制图表的配置 。 现在,让我们看一个散点图的示例。 配置 (Configurations) 我们使用ScatterChart类来显示Scatter图表。 ScatterChart chart = new ScatterChart(); 例子 (Example) HelloWorl

  • 以下是基本散点图的示例。 我们已经在Highcharts Configuration Syntax一章中看到了用于绘制图表的配置 。 下面给出了基本散点图的示例。 配置 (Configurations) 现在让我们看一下所采取的其他配置/步骤。 系列 (series) 将图表类型配置为基于分散。 series.type决定图表的系列类型。 这里,默认值是“line”。 chart.addSerie

  • 散点图用于绘制基于散点图的图表。 在本节中,我们将讨论基于散点图的不同类型的图表。 Sr.No. 图表类型和描述 1 散点图 散点图。

  • 问题内容: 如何将趋势线添加到使用matplotlib.scatter绘制的点图上? 问题答案: 如这里解释 在numpy的帮助下,您可以计算出例如线性拟合。

  • 散点图用于在水平轴和垂直轴上绘制数据点,它表示了因变量随自变量变化的趋势。通俗地讲,它反映的是一个变量受另一个变量的影响程度。 散点图将序列显示为一组点,其中每个散点值都由该点在图表中的坐标位置表示。对于不同类别的点,则由图表中不同形状或颜色的标记符表示。同时,您也可以设置标记符的颜色或大小。 下面示例,绘制了学生考试成绩的散点图,其中蓝色代表男孩成绩,红色表示女孩的成绩。 代码执行后,输出结果如

  • 本文向大家介绍matplotlib 散点图,包括了matplotlib 散点图的使用技巧和注意事项,需要的朋友参考一下 示例 一个简单的散点图 带有标记点的散点图