使用seaborn的简单线条图

我正在尝试使用seaborn(python)绘制ROC曲线。使用matplotlib,我只需使用函数one_minus_specificity

plt.plot(one_minus_specificity, sensitivity, 'bs--')

其中one_minus_specificitysensitivity是两个配对值列表。

在seaborn中是否有与情节函数简单的对应关系? 我看了看画廊,但没有找到任何简单的方法。

Titus Pullo asked 2020-01-14T06:49:42Z
3个解决方案
74 votes

由于seaborn还使用matplotlib进行绘制,因此您可以轻松地将两者结合起来。 如果您只想采用seaborn的样式,则set_style函数应该可以帮助您入门:

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

sns.set_style("darkgrid")
plt.plot(np.cumsum(np.random.randn(1000,1)))
plt.show()

结果:

enter image description here

hitzg answered 2020-01-14T06:50:06Z
10 votes

可以使用seaborn.lineplot()来完成此操作,但它涉及将numpy数组转换为pandas数据帧的其他工作。 这是一个完整的示例:

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

# inputs
In [41]: num = np.array([1, 2, 3, 4, 5])
In [42]: sqr = np.array([1, 4, 9, 16, 25])

# convert to pandas dataframe
In [43]: d = {'num': num, 'sqr': sqr}
In [44]: pdnumsqr = pd.DataFrame(d)

# plot using lineplot
In [45]: sns.set(style='darkgrid')
In [46]: sns.lineplot(x='num', y='sqr', data=pdnumsqr)
Out[46]: <matplotlib.axes._subplots.AxesSubplot at 0x7f583c05d0b8>

我们得到以下图:

square plot

kmario23 answered 2020-01-14T06:50:30Z
2 votes

是的,您可以直接在Seaborn中进行相同的操作。 这是通过tsplot()完成的,它允许将单个数组作为输入,也可以将两个数组作为另一个输入作为``时间''即x轴。

import seaborn as sns

data =  [1,5,3,2,6] * 20
time = range(100)

sns.tsplot(data, time)

enter image description here

mikkokotila answered 2020-01-14T06:50:50Z
translate from https://stackoverflow.com:/questions/31069191/simple-line-plots-using-seaborn