Цветовая карта имеет неправильный диапазон при использовании с морской сеткой и сетчатой ​​диаграммой - PullRequest
1 голос
/ 24 октября 2019

Для фрейма данных Pandas я пытаюсь использовать Seaborn для создания FacetGrid на основе одного столбца ('year'), а затем создать точечную диаграмму для каждого субплота, где оси x и y соответствуют столбцам 'x' и'y', а цвет соответствует еще одному значению 'p'. Я также хочу добавить значащую цветовую полосу в качестве аннотации к графику. Используя мой код ниже, где data - это кадр данных Pandas,

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 'data' imported from a csv file
data.head()
          x         y         q         t         p  year
0  0.864721  0.080396  0.970694  0.848008  2.164305     1
1  0.615352  0.768370  0.950874  2.902603  2.383057     3
2  0.775110  0.562287  1.163768  0.151289  4.026925     1
3  0.355569  0.161638  0.840118  3.075967  0.431773     4
4  0.405850  0.807168  1.261452  0.242770  1.111010     1

g = sns.FacetGrid(data, col='year', hue='p', palette='seismic')
g = g.map(plt.scatter, 'x', 'y', s=100, alpha=0.5)
plt.colorbar()

Я могусоздайте это как показано ниже. enter image description here

Так что я могу получить фазовую сетку с графиками рассеяния. Проблема в том, что моя цветовая шкала с правой стороны не выровнена (в терминах значений и цветовой палитры) с кругами на точечных диаграммах. Истинные значения для 'p' находятся в диапазоне от 0,15 до 8,2;значения для цветовой карты варьируются от 0 до 1. Кроме того, палитра цветов, кажется, отличается между графиками и цветовой картой. Таким образом, правильная цветовая карта будет варьироваться от темно-синего до темно-красного для диапазона от 0,15 до 8,2.

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

Как мне заставить это работать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...