App下載

如何使用python Matplotlib在散點(diǎn)圖中標(biāo)記顏色?

猿友 2021-07-27 14:19:50 瀏覽數(shù) (2842)
反饋

我目前正在上 Matplotlib 課。我得到了一個(gè)圖像,以創(chuàng)建圖像作為一個(gè)3D子圖4次,在4個(gè)不同的角度。這是一個(gè)線性情節(jié)。當(dāng)數(shù)據(jù)更改時(shí),繪圖會(huì)更改顏色。由于它是一個(gè)圖像,我不確定實(shí)際更改從何處開始。我不想要一個(gè)確切的答案, 只是解釋這將如何工作。我已找到許多方法來(lái)執(zhí)行此操作的一個(gè)小列表,但這有75個(gè)數(shù)據(jù)點(diǎn),我似乎不能做到這一點(diǎn),而不添加75個(gè)條目。我也試圖了解cmap,但我也感到困惑。此外,它需要做沒有西伯恩。

解答:

我覺得你的問(wèn)題有點(diǎn)難以理解。我認(rèn)為您需要的是將輸入 x/y 參數(shù)映射到所選顏色圖中的顏色上的功能。請(qǐng)參閱下示例:

import numpy as np
import matplotlib.pyplot

def number_to_colour(number, total_number):
    return plt.cm.rainbow(np.linspace(0,1.,total_number))[list(number)]

x = np.arange(12)
y = x*-3.
z = x

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x, y, z, c=number_to_colour(x, len(x)))
plt.show()

plt.cm.rainbow(np.linspace(0,1.,total_number))創(chuàng)建長(zhǎng)度均勻間隔的彩色陣列,間隔于彩色地圖(在此例中)。修改此數(shù)組的索引(或通過(guò)所需的縮放將 np.linspace 更改為其他功能)應(yīng)為您提供所需的顏色縮放。total_numberrainbow


0 人點(diǎn)贊