создать диаграмму рассеяния из файла csv с категориями - PullRequest
0 голосов
/ 08 мая 2020

Я только что вошел в Python и пытаюсь создать диаграмму рассеяния с несколькими категориями. Я использую набор данных Iris в качестве основы, вот что у меня есть на данный момент:

import matplotlib.pyplot as plt
import numpy as np

fig,ax = plt.subplots(1)

iris_data = np.genfromtxt(
    "iris.csv", names=True,
    dtype="float", delimiter=",")

x=iris_data["sepal_length"]
y=iris_data["sepal_width"]
g=iris_data["class"]
plt.scatter(x,y)

plt.show()

Я не знаю, как разделить классы и построить каждый из них на одном графике.

Я исхожу из Matlab, где все, что мне нужно, это «gscatter (x, y, g) создает диаграмму рассеяния x и y, сгруппированных по g», чтобы выполнить работу, но я обнаружил, что python требуется немного больше, чтобы завершить работу с группой group by g .

Заранее благодарим вас за любую помощь.

1 Ответ

1 голос
/ 08 мая 2020

Используйте seaborn :

import seaborn as sns, matplotlib.pyplot as plt

iris = sns.load_dataset('iris')
sns.scatterplot(x='sepal_length',y='sepal_width',data=iris,hue='species')

plt.show()

Результат:

enter image description here

Вы можете сделать то же самое в matplotlib, как в приведенном ниже примере, если ваши данные организованы в pandas DataFrame:

for k,g in iris.groupby('species'):
    plt.scatter(g['sepal_length'],g['sepal_width'],label=k)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...