【问题标题】:Python - color a 3d line plotPython - 为 3d 线图着色
【发布时间】:2015-03-31 21:21:20
【问题描述】:

我有一个太阳光谱的 3d 线图,是我使用命令绘制的,

from mpl_toolkits.mplot3d.axes3d import Axes3D
from matplotlib.collections import PolyCollection, LineCollection
from matplotlib.colors import colorConverter, ListedColormap, BoundaryNorm
import matplotlib.cm as cm

fig = plt.figure(figsize(15, 8))
ax = fig.gca(projection='3d')

x = SpectrumDF['Wavelength']
z = SpectrumDF['DNI']
y = SpectrumDF['TESTNUM']

ax.plot(x, y, z)
ax.set_xlabel('Wavelength')
ax.set_ylabel('Test Number')
ax.set_zlabel('Intensity')

生成的图是纯蓝色的,并采用我在函数中给出的任何一种颜色:plot()。

我一直在尝试沿 z 轴的强度创建颜色渐变,但没有任何成功。

我有大约 500 个测试编号,每个都有 744 个数据点。

感谢您的帮助!

这不会让我发布图片,因为我没有足够的声誉。无论如何,这是我使用此代码获得的情节链接https://plus.google.com/106871046257785761571/posts/fMYsDF5wAQa

【问题讨论】:

  • 您没有上传图片。请编辑问题
  • 什么命令?再次检查以确保您已包含代码。
  • 您正在使用的命令plot(x, y, z) 用于参数曲线,通常不会有随z 变化的颜色,并且无论如何也不是您真正拥有的。如果您愿意,您可以通过一些努力添加 z-color,但我建议您四处寻找一个看起来适用于您的数据并从那里开始工作的示例图。如果您只想添加颜色,请参见此处:stackoverflow.com/questions/15617207/…(但至少,将这些曲线绘制为每个试验编号的不同曲线)。
  • 谢谢! @tom10 我做了一个散点图,并使用链接中的示例为图表着色。
  • 太棒了!要坚持使用 StackOverflow 系统,理想的做法是为您自己的问题写一个答案,然后接受答案。这样,其他人也可以从您的解决方案中受益。 (如果您这样做,还可以发布一个数字,以便我们看到差异 - 我也可以将其添加到问题和答案中,因为您可能还没有发布图像的声誉。)

标签: python matplotlib mplot3d


【解决方案1】:

使用示例 - Line colour of 3D parametric curve in python's matplotlib.pyplot - 我得到了沿 z 轴颜色渐变的散点图 - 这是该图图像的链接 - https://plus.google.com/u/0/106871046257785761571/posts/SHTsntgQxTw?pid=6133159284332945618&oid=106871046257785761571

我使用了以下命令:

fig = plt.figure(figsize(15,8))
ax = fig.gca(projection='3d')

x = FilteredDF['Wavelength']
z = FilteredDF['DNI']
y = FilteredDF['TESTNUM']

ax.scatter(x, y, z, c=plt.cm.jet(z/max(z)))

ax.set_xlabel('Wavelength')
ax.set_ylabel('Test Number')
ax.set_zlabel('Intensity')

plt.show()

我仍在努力获得彩色线图,因为我有很多点,这使得散点图的使用速度非常慢。

谢谢

【讨论】:

  • 谢谢@tom10。你能帮我给 3D 线图上色吗?如果需要,我可以附上我拥有的数据示例。
  • 您遇到的是一个常见问题,您无法轻松查看更多数据。我不相信彩色线是正确的使用方式,它不一定会加快速度,因为您仍然需要显示大约 100 万件东西。问题实际上是您试图显示这么多数据点。此外,如果您删除点的边缘,您的散点图会更好看:matplotlib.org/api/markers_api.html
  • 不过,总的来说,我不想下载数据并为您绘制图表。通常尝试显示过多数据点的解决方案是仔细考虑您真正想要显示的内容。这只能由您完成。
猜你喜欢
  • 1970-01-01
  • 2022-07-08
  • 1970-01-01
  • 1970-01-01
  • 2020-07-07
  • 2021-12-03
  • 2019-09-28
  • 2015-03-29
  • 1970-01-01
相关资源
最近更新 更多