Python 如何使用matplotlib根据散点图上的点的类型为其着色

Python 如何使用matplotlib根据散点图上的点的类型为其着色,python,matplotlib,jupyter-notebook,Python,Matplotlib,Jupyter Notebook,我正在处理虹膜数据并尝试使用散点图,虽然我能够获得输出,但我想知道如何使用matplotlib根据点的种类为点着色 我已经使用了以下语法: iris.plot.scatter(x='petal_length', y='petal_width') iris.plot(kind='scatter', x='sepal_length', y='sepal_width') 另外,是否有任何方法可以使用一行代码创建萼片长度/宽度和花瓣长度/宽度的两个散点图,同时根据物种进行着色?在一次调用plotti

我正在处理虹膜数据并尝试使用散点图,虽然我能够获得输出,但我想知道如何使用matplotlib根据点的种类为点着色

我已经使用了以下语法:

iris.plot.scatter(x='petal_length', y='petal_width') 
iris.plot(kind='scatter', x='sepal_length', y='sepal_width')

另外,是否有任何方法可以使用一行代码创建萼片长度/宽度和花瓣长度/宽度的两个散点图,同时根据物种进行着色?

在一次调用plotting函数中获得正确的颜色有点繁琐

import seaborn as sns
iris = sns.load_dataset("iris")
import numpy as np
import matplotlib.pyplot as plt

u, inv = np.unique(iris.species.values, return_inverse=True)
ax = iris.plot.scatter(x='petal_length', y='petal_width', 
                  c=inv, cmap="brg", colorbar=False)

plt.show()

因此,我建议对该物种进行循环,这样做的另一个好处是可以很容易地在情节中加入一个传说

import seaborn as sns
iris = sns.load_dataset("iris")
import matplotlib.pyplot as plt

for n, grp in iris.groupby("species"):
    plt.scatter(grp.petal_length, grp.petal_width, label=n)
plt.legend()
plt.show()

一个简单的解决方案也是使用seaborn

import seaborn as sns
iris = sns.load_dataset("iris")
import matplotlib.pyplot as plt

g = sns.FacetGrid(iris, hue="species")
g.map(plt.scatter, 'petal_length','petal_width').add_legend()
plt.show()

我认为您应该有一个名为
type
的专栏。只需将其添加为参数
c='type'
。这不是一个。请编辑您的问题。话虽如此,IMCoins可能是对的。但谁知道呢。