我的问题如下。
我有一个 pandas DataFrame,其中包含第一行中“样本”的数据和所有其他行中“控件”的数据。 我想要一个散点图(或任何其他类型的图来概括问题),其中所有“控件”均为一种颜色,“样本”为另一种颜色。怎么做?我查看了 pandas 文档,但找不到任何内容。
这是我目前所掌握的内容
from pandas import *
from collections import OrderedDict
mydict = OrderedDict([
('sample', [454, 481, 160, 26, 17]),
('ctrl_1', [454, 470, 101, 10, 8]),
('ctrl_2', [454, 473, 110, 15, 9]),
('ctrl_3', [454, 472, 104, 19, 13]),
('ctrl_4', [454, 472, 105, 16, 13]),
('ctrl_5', [454, 466, 97, 15, 10]),
('ctrl_6', [454, 473, 110, 17, 10]),
('ctrl_7', [454, 465, 99, 15, 11]),
('ctrl_8', [454, 471, 107, 18, 12]),
('ctrl_9', [454, 471, 102, 15, 11]),
('ctrl_10', [454, 472, 116, 14, 9])
])
df = DataFrame.from_dict(mydict,orient='index')
df.columns=['A','B','C','D','E']
df.plot(kind='scatter',x='C',y='E',figsize=(10,10), color='blue')
我尝试将 DataFrame 一分为二(控件和示例),并将一个绘制在另一个之上,但当您尝试散点绘制单个点时,pandas 会引发错误(类型错误:没有行属性“y”)(这是一个错误吗?)。
sample = df.ix[0]
controls = df.ix[1:]
controls.plot(kind='scatter',x='C',y='E',figsize=(10,10), color='blue')
sample.plot(kind='scatter',x='C',y='E',figsize=(10,10), color='red')
有什么建议吗?
最佳答案
您将从 df.ix[0]
返回一个系列,其中 can't be drawn as a scatter plot 。 (我猜理论上它可能是一个有效的类型,但是,正如你所说,它只会显示 1 分。)
如果您稍微更改代码以使 sample
成为 DataFrame,它就可以工作。 (我还使用相同的轴将两者放在同一个图上。)
sample = df.ix[:1]
controls = df.ix[1:]
ax = controls.plot(kind='scatter',x='C',y='E',figsize=(10,10), color='blue')
sample.plot(ax=ax, kind='scatter',x='C',y='E',figsize=(10,10), color='red')
关于python - 如何使用 Pandas 指定散点图中各个点的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28191934/