Визуализация одномерных данных в последовательной цветовой карте - PullRequest
0 голосов
/ 11 июля 2019

У меня есть серия панд, содержащая числа в диапазоне от 0 до 100. Я хочу визуализировать ее в горизонтальной полосе, состоящей из 3 основных цветов.

Я пробовал использовать морского рожка, но все, что я могу получить, - это тепловая картаматрица.Я также попробовал приведенный ниже код, который производит то, что мне нужно, но не так, как мне нужно.

x = my_column.values
y = x
t = x
fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.scatter(x, y, c=t, cmap='brg')
ax2.scatter(x, y, c=t, cmap='brg')
plt.show()

То, что я ищу, это что-то похожее на рисунок ниже, как я могу добитьсячто с использованием matplotlib или seaborn?

enter image description here

1 Ответ

1 голос
/ 11 июля 2019

Цель этого не совсем ясна, однако следующее может привести к изображению, подобному показанному в вопросе:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap

x = np.linspace(100,0,101)

fig, ax = plt.subplots(figsize=(6,1), constrained_layout=True)

cmap = LinearSegmentedColormap.from_list("", ["limegreen", "gold", "crimson"])
ax.imshow([x], cmap=cmap, aspect="auto", 
          extent=[x[0]-np.diff(x)[0]/2, x[-1]+np.diff(x)[0]/2,0,1])
ax.tick_params(axis="y", left=False, labelleft=False)
plt.show()

enter image description here

...