Отображение цветовой шкалы с сюжетом на проекции моллвейд - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь создать диаграмму рассеяния lll и bbb переменных с amplitudes в качестве цвета с проекцией молвейд с цветовой шкалой.

Если я делаю

import pylab as plt
import numpy as np
lll=N.random.uniform(-180,180,10000)
bbb=N.random.uniform(-90,90,10000)
amp=N.random.uniform(0,1,10000)

fig = plt.figure(figsize=(12,9))
ax = fig.add_subplot(111, projection="mollweide")
ax.scatter(N.array(lll)*N.pi/180., N.array(bbb)*N.pi/180., c=amp)

ax.grid(True)

Я получаю сюжет, который хочу, но без цветовой шкалы.Если я добавлю строку с ax.colorbar() или plt.colorbar(), она не будет работать.

Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 16 мая 2018

Вам необходимо вернуть значение из ax.scatter, а затем передать его в качестве аргумента в plt.colorbar ( не сама ось):

lll=np.random.uniform(0,360,10000)
bbb=np.random.uniform(-90,90,10000)
amplitudes=np.random.uniform(0,1,10000)

l_axis_name ='latitude l (deg)'
b_axis_name = 'longitude b (deg)'

for i in range(len(lll)):
    if lll[i]>180:
        lll[i] -= 360
fig = plt.figure(figsize=(12,9))
ax = fig.add_subplot(111, projection="mollweide")
ax.grid(True)

sc = ax.scatter(np.array(lll)*np.pi/180., np.array(bbb)*np.pi/180., c=amplitudes)
plt.colorbar(sc)

plt.show()

enter image description here

...