簡體   English   中英

在matplotlib中的顏色與散點圖

[英]3d scatter plot with color in matplotlib

我在python中使用matplotlib中的散點3d繪圖來繪制以下數據,

      x              y            z        b2
3.28912855713 4.64604863545 3.95526335139 1.0
3.31252670518 4.65385917898 3.96834118896 1.0

當情節是2d時,

fig = plt.figure()
ax = fig.add_subplot(111)
line =ax.scatter(x,y,c=b2,s=500,marker='*',edgecolors='none')
cb = plt.colorbar(line)

它生成以下圖像,這是完全正確的。 在此輸入圖像描述

現在,我想繪制3d點,代碼為:

fig = plt.figure()
ax = fig.add_subplot(111,projection='3d')
line = ax.scatter(x,y,z,c=b2,s=1500,marker='*',edgecolors='none',depthshade=0)
cb = plt.colorbar(line)

我得到了以下情節,這是不對的,因為顏色應該像之前的情況一樣是綠色的(b2不會改變)。 在此輸入圖像描述

我錯過了什么嗎?

可能不是。 我不知道您使用的是什么版本的Matplotlib但是在某些時候這個問題存在一個錯誤,顯然仍然會對我今天使用的版本產生影響,即1.5.1(請查看此問題以獲取更多信息)。

使@Yann解決方案適應您的問題應解決該問題。 我在計算機上測試了它,結果如下:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

x = [3.28912855713, 3.31252670518]
y = [4.64604863545, 4.65385917898]
z = [3.95526335139, 3.96834118896]
b2 = [1, 1]

fig = plt.figure()
ax = fig.add_subplot(111,projection='3d')
line = ax.scatter(x, y ,z , c=b2, s=1500, marker='*', edgecolors='none', depthshade=0)
cb = plt.colorbar(line)

def forceUpdate(event):
    global line
    line.changed()

fig.canvas.mpl_connect('draw_event', forceUpdate)

plt.show()

入口處和旋轉后的圖的圖像是:

3D matplotlib散點圖與顏色

旋轉后帶有顏色的3D matplotlib散點圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM