Вот макет DataFrame:контролирования цвета в scaterplot
import pandas as pd
groups=pd.DataFrame({'Morph':np.random.choice(['S', 'Red'], 50),
'Tcross':np.random.rand(50)*0.2 ,
'DeltaR12':np.random.rand(50)*2.0})
Я Постройте диаграмму рассеяния так:
import matplotlib.pyplot as plt
plt.rcParams.update(pd.tools.plotting.mpl_stylesheet)
colors = pd.tools.plotting._get_standard_colors(len(groups), color_type='random')
fig, ax = plt.subplots()
ax.set_color_cycle(colors)
ax.margins(0.05)
for name, group in groups:
ax.plot(group.DeltaR12, group.Tcross, marker='o',
linestyle='', ms=5, label=name)
legend = ax.legend(numpoints=1, loc='upper left', shadow=True)
# Hereafter, code for the subsidiary question at the end or the post
# code doesn't produce anything
frame = legend.get_frame()
frame.set_facecolor('0.90')
for label in legend.get_lines():
label.set_linewidth(1.5)
ax.set_xlabel('$\Delta R_{12}$')
ax.set_ylabel('$T_{cross}$')
Итоговое в
или, альтернативно, с магией моря, в одной строке:
sns.swarmplot(x="DeltaR12", y="Tcross", data=groups, hue="MorphCen", size=6)
(какие группы с моим фактическим DataFrame без даже уронить þér другие столбцы)
Результирующее в
Я хотел бы контролировать цвета категорий: это выглядит немым иметь ярлык «Красный» в желтом или синем! Более того, спиральные галактики голубые, поэтому сюжетные категории «S» в фиолетовом исполнении выглядят немыми. Как легко управлять этим выбором цвета?
Дочернее предприятие, если кто-то знает, как нарисовать коробку вокруг легенды, было бы хорошо, я не понимаю документ для автоматических меток, только для установленных вручную. :) Я пробовал что-то в первом коде, как указано в комментариях, но ничего не производит.
Спасибо
Вы заметили аргумент ключевого слова 'palette' для [' swarmplot'] (http://seaborn.pydata.org/generated/seaborn.swarmplot.html)? – Goyo
@Goyo: Я пробовал следующий код, но он не создает то, что я хочу: 'sns.swarmplot (x =" DeltaR12 ", y =" Tcross ", data = Compact_SRed_Full_ML, hue =" MorphCen ", size = 6, palette = sns.palplot (sns.xkcd_palette (["blue", "red"]))) ' – Matt
Интересно, что вы ожидаете, что' sns.palplot' вернется и почему. – Goyo