Как нарисовать несколько строк с помощью Seaborn?

#python #python-3.x #matplotlib #seaborn #data-visualization

#python #python-3.x #matplotlib #seaborn #визуализация данных

Вопрос:

Я пытаюсь нарисовать график с двумя линиями. Оба с разными цветами. И разные метки. Это то, что я придумал.

введите описание изображения здесь

Это код, который я написал.

 import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data1 = pd.read_csv("/content/drive/MyDrive/Summer-2020/URMC/training_x_total_data_ones.csv", header=None)
data2 = pd.read_csv("/content/drive/MyDrive/Summer-2020/URMC/training_x_total_data_zeroes.csv", header=None)

sns.lineplot(data=data1, color="red")
sns.lineplot(data=data2)
 

Что я делаю не так?

Редактировать

Вот как выглядит мой набор данных

введите описание изображения здесь

Ответ №1:

Попробуйте указать x и y для вызова sns.lineplot ?

 import pandas as pd
import numpy as np
import seaborn as sns

x = np.arange(10)

df1 = pd.DataFrame({'x':x,
                    'y':np.sin(x)})

df2 = pd.DataFrame({'x':x,
                    'y':x**2})

sns.lineplot(data=df1, x='x', y='y', color="red")
sns.lineplot(data=df2, x='x', y='y')
 

введите описание изображения здесь

Не делая этого, я получаю сюжет, похожий на ваш.

Комментарии:

1. Я думаю, это также связано с моим набором данных. Я отредактировал вопрос и добавил скриншот обоих моих наборов данных.

Ответ №2:

Итак, я просто добавил еще один цвет во вторую строку, и это, похоже, сработало.

 import random
import numpy as np
import seaborn as sns

mu, sigma = 0, 0.1 
s = np.random.normal(mu, sigma, 100)

mu1, sigma1 = 0.5, 1
t = np.random.normal(mu1, sigma1, 100)

sns.lineplot(data= s, color = "red")
sns.lineplot(data= t, color ="blue")
 

введите описание изображения здесь

Комментарии:

1. Я думаю, это также связано с моим набором данных. Я отредактировал вопрос и добавил скриншот обоих моих наборов данных.

2. Вы пытались добавить параметр hue? т.е. sns.lineplot(данные =data1, оттенок =<имя столбца>)

3. Ошибка значения: следующая переменная не может быть назначена с данными широкой формы: hue

4. Это то, что я пробовал: sns.lineplot(data= data1, hue =’0′)

5. Это то, что я сделал, и это сработало для меня, sns.lineplot(data = s, hue = s) sns.lineplot(data = t, hue = t), где s и t — имена моих переменных. В вашем случае, поскольку у вас есть только 1 столбец, вы можете указать имя данных, т.е.. data1 и data2 ? Попробуйте это.