如何使用 Pandas 为散点图中的各个点指定颜色
How to specify colors for individual points in a scatter plot using Pandas
我的问题如下。
我有一个 pandas DataFrame,其中第一行包含 "sample" 的数据,其他所有行包含 "controls" 的数据。
我想要一个散点图(或任何其他类型的图来概括问题),其中所有 "controls" 都是一种颜色,而 "sample" 是另一种颜色。怎么做?我查看了 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 引发错误(TypeError:没有行 属性 "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')
我的问题如下。
我有一个 pandas DataFrame,其中第一行包含 "sample" 的数据,其他所有行包含 "controls" 的数据。 我想要一个散点图(或任何其他类型的图来概括问题),其中所有 "controls" 都是一种颜色,而 "sample" 是另一种颜色。怎么做?我查看了 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 引发错误(TypeError:没有行 属性 "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')