Pracuję z danymi, których dane mają 3 parametry kreślenia: x, y, c. Jak utworzyć niestandardową wartość koloru dla wykresu punktowego?
Rozszerzając ten przykład , próbuję zrobić:
import matplotlib
import matplotlib.pyplot as plt
cm = matplotlib.cm.get_cmap('RdYlBu')
colors=[cm(1.*i/20) for i in range(20)]
xy = range(20)
plt.subplot(111)
colorlist=[colors[x/2] for x in xy] #actually some other non-linear relationship
plt.scatter(xy, xy, c=colorlist, s=35, vmin=0, vmax=20)
plt.colorbar()
plt.show()
ale wynik jest TypeError: You must first set_array for mappable
python
colors
matplotlib
Adam Greenhall
źródło
źródło
'AxesSubplot' object has no attribute 'colorbar'
. Zrobiłemax.colorbar()
... co ja robię źle?Oto sposób OOP dodawania paska kolorów:
źródło
plt
do kreślenia paska kolorów, nie jest według mnie zalecanym sposobem. Wasz sposób jest godny pochwały.Jeśli chcesz rozproszyć dwie zmienne i kolor według trzeciej, Altair może być świetnym wyborem.
Tworzenie zbioru danych
import matplotlib.pyplot as plt import numpy as np import pandas as pd df = pd.DataFrame(40*np.random.randn(10, 3), columns=['A', 'B','C'])
Działka Altaira
from altair import * Chart(df).mark_circle().encode(x='A',y='B', color='C').configure_cell(width=200, height=150)
Wątek
źródło