Chcę utworzyć nową mapę kolorów, która interpoluje między zielonym i niebieskim (lub dwoma innymi kolorami). Moim celem jest uzyskanie czegoś w rodzaju: Jak utworzyć gradient koloru w Pythonie?
Przede wszystkim nie jestem pewien, czy można to zrobić za pomocą liniowej interpolacji niebieskiego i zielonego. Jeśli to możliwe, nie jestem pewien, jak to zrobić, znalazłem dokumentację dotyczącą użycia metody matplotlib, która interpoluje określone wartości RGB. Na przykład dokumentacja mówi:
"Przykład: załóżmy, że chcesz, aby czerwony wzrósł od 0 do 1 w dolnej połowie, zielony, aby zrobić to samo w połowie i niebieski w górnej połowie. ”
from matplotlib import pyplot as plt
import matplotlib
import numpy as np
plt.figure()
a=np.outer(np.arange(0,1,0.01),np.ones(10))
cdict2 = {'red': [(0.0, 0.0, 0.0),
(0.5, 1.0, 1.0),
(1.0, 1.0, 1.0)],
'green': [(0.0, 0.0, 0.0),
(0.25, 0.0, 0.0),
(0.75, 1.0, 1.0),
(1.0, 1.0, 1.0)],
'blue': [(0.0, 0.0, 0.0),
(0.5, 0.0, 0.0),
(1.0, 1.0, 1.0)]}
my_cmap2 = matplotlib.colors.LinearSegmentedColormap('my_colormap2',cdict2,256)
plt.imshow(a,aspect='auto', cmap =my_cmap2)
plt.show()
EDIT: I teraz zrozumieć, jak działa interpolacji, na przykład ten da się czerwony na białym interpolacji:
białego na czerwony: Schodząc kolumny z«matrycą»dla każdego koloru , w kolumnie pierwszej mamy współrzędną x, w której chcemy, aby interpolacja zaczęła się i kończyła, a dwie pozostałe kolumny są rzeczywistymi wartościami dla koloru val na tej współrzędnej.
cdict2 = {'red': [(0.0, 1.0, 1.0),
(1.0, 1.0, 1.0),
(1.0, 1.0, 1.0)],
'green': [(0.0, 1.0, 1.0),
(1.0, 0.0, 0.0),
(1.0, 0.0, 0.0)],
'blue': [(0.0, 1.0, 1.0),
(1.0, 0.0, 0.0),
(1.0, 0.0, 0.0)]}
Jest oczywiste, że gradient Chcę będzie bardzo trudno stworzyć przez interpolację w przestrzeni RGB ...
[Sprawdź ten link] (http://matplotlib.org/examples/color/named_colors.html) o nazwanych kolorach. Jest tam kod, który pokazuje konwersję między metodami specyfikacji. [Też myślę, że ten link] (http://matplotlib.org/examples/api/colorbar_only.html) o kolorach może pomóc. – mauve
Jak stworzyłeś przykładowy gradient? To daleki od linearności. –
Tak, oczywiście, to tylko zrzut ekranu ilustrujący to, co chcę. Nie stworzyłem tego. Zastanawiam się, czy Python ma jakieś funkcje, które ułatwiają tego rodzaju gradienty ... – Jack