我有此数据帧diamonds,它由被等变量(carat, price, color),我想画的散点图price来carat为每个color,这意味着不同的color具有在图中不同的颜色.
这很容易在R与ggplot:
ggplot(aes(x=carat, y=price, color=color), #by setting color=color, ggplot automatically draw in different colors
data=diamonds) + geom_point(stat='summary', fun.y=median)
Run Code Online (Sandbox Code Playgroud)

我想知道如何在Python中使用matplotlib?
PS:
我知道辅助绘图包,比如seaborn和ggplot for python,我不喜欢它们,只是想知道是否有可能matplotlib单独使用,P;
我试图了解matplotlib的状态机模型,但是在尝试在单个绘图上绘制多条线时遇到错误.根据我的理解,下面的代码应该生成一个包含两行的图:
import pandas as pd
import pandas.io.data as web
aapl = web.get_data_yahoo('AAPL', '1/1/2005')
# extract adjusted close
adj_close = aapl.loc[:, ['Adj Close']]
# 2 lines on one plot
hold(False)
adj_close.resample('M', how='min').plot()
adj_close.resample('M', how='max').plot()
Run Code Online (Sandbox Code Playgroud)
事实上,我得到三个数字:首先是空白数字,然后是两个数字,每个数字一行.

知道我做错了什么或我的系统上的设置可能配置错误了吗?
这是关于此解决方案的后续问题。会自动分配不同的颜色,kind=line但对于散点图则不然。
import pandas as pd
import matplotlib.pylab as plt
import numpy as np
# random df
df = pd.DataFrame(np.random.randint(0,10,size=(25, 3)), columns=['label','x','y'])
# plot groupby results on the same canvas
fig, ax = plt.subplots(figsize=(8,6))
df.groupby('label').plot(kind='scatter', x = "x", y = "y", ax=ax)
Run Code Online (Sandbox Code Playgroud)
这里有一个相关的问题。有什么简单的解决方法吗?
更新:
当我尝试使用@ImportanceOfBeingErnest 针对包含字符串的列推荐的解决方案时label,它不起作用!
df = pd.DataFrame(np.random.randint(0,10,size=(5, 2)), columns=['x','y'])
df['label'] = ['yes','no','yes','yes','no']
fig, ax = plt.subplots(figsize=(8,6))
ax.scatter(x='x', y='y', c='label', data=df)
Run Code Online (Sandbox Code Playgroud)
它抛出以下错误,
ValueError:无效的 RGBA 参数:“是”
在处理上述异常的过程中,又出现了一个异常: