Python3 从字典中创建一个三维图(值:元组)

4

我正在尝试从字典中创建一个三维图,并遇到了一个难题。Z轴将是键(MSE),而X和Y轴将是元组的第一个和第二个值,例如,在下面的示例数据集中,第一个示例中X将为2,Y将为5:

80178.37739073468: (2, 5),
81623.18006660603: (13, 14),
82583.3021359235: (8, 16),
83491.34222215343: (9, 8),
83724.73005402873: (8, 14),
83856.2891246289: (7, 8),
83984.92825308126: (6, 5),
84314.30519882984: (13, 16),
84577.4110193269: (4, 11),
86338.86146117302: (6, 20)

我找到了一些用于列表的示例代码,但那只适用于二维图。

1个回答

4
如果我理解正确,您可以执行以下操作。 假设您的字典长这样:
mydict = {80178.37739073468: (2, 5),
81623.18006660603: (13, 14),
82583.3021359235: (8, 16),
83491.34222215343: (9, 8),
83724.73005402873: (8, 14),
83856.2891246289: (7, 8),
83984.92825308126: (6, 5),
84314.30519882984: (13, 16),
84577.4110193269: (4, 11),
86338.86146117302: (6, 20)}

这里是绘图的代码:
from mpl_toolkits.mplot3d import Axes3D
# Get your x, y and z variables
z = list(mydict.keys())
# unpack the dictionary values into two variables, x and y
x,y = zip(*mydict.values())
# plot
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.scatter(x, y, z)

在这里输入图片描述

有用的文档:matplotlib的Axes3d


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接