Когда я строю сгруппированный точечный график из панд (как описано в документации ), где вторая группа должна содержать цветную полосу, я получаю ошибку TypeError: You must first set_array for mappable
.
Следуя другим, но различным вопросам для разгруппированных диаграмм разброса , это потому, что cmap
используется только в том случае, если c
является массивом чисел с плавающей запятой. Но автономно он работает отлично, и данные не обрабатываются между созданием двух осей-объектов.
Вот код, который я использую:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.DataFrame(np.random.rand(100, 5), columns=['A', 'B', 'C', 'D', 'E'])
# this works stand-alone
#df.plot(kind='scatter', x='A', y='B', c='C', cmap='Blues')
# why does this break?
ax = df.plot(kind='scatter', x='D', y='E', color='red', label='Other group')
df.plot(kind='scatter', x='A', y='B', c='C', cmap='Blues', ax=ax)
plt.show()
Обе группы должны отображаться на одном графике. Обратите внимание, что для меня важно построить столбцы D и E, прежде чем наносить на них A, B и C, поэтому последние должны быть на втором графике. Наоборот, это работает, но для моих требований это ломается.
Кто-нибудь знает, как это исправить и получить желаемый результат?
Заранее спасибо!