【发布时间】:2019-06-03 07:08:20
【问题描述】:
当我从 pandas 绘制分组散点图(如 documentation 中所述)时,其中第二组需要包含彩条,我收到错误 TypeError: You must first set_array for mappable。
在different questions for ungrouped scatter plots 之外的其他之后,这是因为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()
两个组应显示在一个图中。请注意,在将 A、B 和 C 绘制在它们之上之前绘制列 D 和 E 对我来说很重要,因此后者需要在第二个图中。反之亦然,它可以工作,但根据我的要求,它会中断。
有谁知道如何解决这个问题并获得想要的结果?
提前致谢!
【问题讨论】:
-
在您的独立版中,您没有为两个图使用相同的
ax。两个图分别绘制。在您有问题的情况下,您尝试使用ax将两者绘制在同一个图中。期望的输出是什么?两个单独的地块或两个单独的地块 -
一个单一的情节,如下面的答案!
-
我会指定我的问题!
标签: python pandas matplotlib plot