【问题标题】:How to draw multiple lines with Seaborn?如何使用 Seaborn 绘制多条线?
【发布时间】:2021-04-26 09:03:34
【问题描述】:

我正在尝试用两条线绘制一个图。两者都有不同的颜色。以及不同的标签。这就是我想出的。

这是我写的代码。

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)

我做错了什么?

编辑

这就是我的数据集的样子

【问题讨论】:

    标签: python python-3.x matplotlib seaborn data-visualization


    【解决方案1】:

    尝试指定调用sns.lineplotxy

    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')
    

    如果不这样做,我会得到和你类似的情节。

    【讨论】:

    • 我认为这也与我的数据集有关。我已经编辑了问题并添加了我的两个数据集的屏幕截图。
    【解决方案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")
    

    【讨论】:

    • 我认为这也与我的数据集有关。我已经编辑了问题并添加了我的两个数据集的屏幕截图。
    • 您是否尝试添加参数,色调?即 sns.lineplot(data=data1, hue=)
    • ValueError: 不能用宽格式数据分配以下变量:hue
    • 这是我试过的:sns.lineplot(data=data1, hue='0')
    • 这就是我所做的,它对我有用,sns.lineplot(data= s, hue = s) sns.lineplot(data= t, hue=t),其中 s 和 t我的变量名。在您的情况下,由于您只有 1 列,因此您可以给出数据的名称,即。数据1和数据2?试试看。
    猜你喜欢
    • 2021-01-15
    • 2019-07-29
    • 2022-11-12
    • 2020-09-01
    • 2020-11-13
    • 1970-01-01
    • 2021-11-12
    • 2021-07-28
    • 1970-01-01
    相关资源
    最近更新 更多