2012-02-16 6 views
6

Я хочу создать график рассеяния с помощью matplotlib, где точки данных имеют прикрепленные к ним скалярные данные и которым присваивается цвет в зависимости от того, насколько велико их прикрепленное значение относительно других точек в наборе. Я хочу что-то похожее на тепловую карту. Тем не менее, я ищу «дискретную» тепловую карту, т. Е. Ничто не должно быть указано, если в исходном наборе данных не было точек, и, в частности, интерполяция (в пространстве) не должна выполняться.График рассеяния со скалярными данными

Можно ли это сделать?

ответ

10

вы можете использовать разброс, и установить прилагаемое значение параметра гр:

import numpy as np 
import pylab as pl 

x = np.random.uniform(-1, 1, 1000) 
y = np.random.uniform(-1, 1, 1000) 

z = np.sqrt(x*x+y*y) 

pl.scatter(x, y, c=z) 
pl.colorbar() 
pl.show() 

enter image description here

-1

Решая это Альтаира.

import numpy as np 
import pylab as pl 

x = np.random.uniform(-1, 1, 1000) 
y = np.random.uniform(-1, 1, 1000) 

z = np.sqrt(x*x+y*y) 

df = pd.DataFrame({'x':x,'y':y, 'z':z}) 

from altair import * 

Chart(df).mark_circle().encode(x='x',y='y', color='z') 

enter image description here

Смежные вопросы