Построение дискретных значений X / Y по тепловой карте Seaborn - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь отметить конкретную координату X / Y на тепловой карте Seaborn.Выходные данные отображают правильную координату X, но представляют Y как минимум / минимум оси.Код и вывод его тепловой карты показаны ниже.

speeds = pd.read_csv('pytest20140730.csv') 
speedspiv = pd.pivot_table(speeds, values = 'speed', index = 'road_order',
                           columns = 'tod_value', aggfunc = np.mean)
speedspiv = speedspiv.sort_index(axis=0, ascending = False)
plt.subplots(figsize=(20,15))
ax = sns.heatmap(speedspiv)
ax.scatter(414, 0.244444444, marker='*', s=100, color='yellow') 

См. Желтую звезду на оси x следующего изображения enter image description here

Что случилось с осью Yзначение не отображается правильно?

1 Ответ

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

Тепловая карта морского побережья создает график с осями X и Y, которые основаны на индексе, а не на данных.Это означает, что даже если помечено 382 ... 453, ось Y переходит от 0 до 71. Чтобы проверить это, просто выведите результат ax.get_xlim() и ax.get_ylim().

.маркер в значимом месте на тепловой карте, это означает, что вам нужно будет вычислить правильные (дробные) индексы значений x и y маркера и использовать их на диаграмме рассеяния:

x_vals = np.linspace(0, 1, 1500)    #  I don't know the real range of you x-data
x_idx = np.interp(.24, x_vals, range(len(x_vals)))
y_vals = np.arange(382, 453)
y_idx = np.interp(414, y_vals, range(len(y_vals)))

In: x_idx, y_idx
Out: (359.76, 32.0)
...