标签: seaborn

使用Seaborn的FacetGrid自定义注释

我正在尝试使用Python中的Seaborn模块自定义一些数字,但我没有运气创建自定义标签或注释.我有一些代码生成下图:

plot = sns.FacetGrid(data = data, col = 'bot', margin_titles = True).set_titles('Human', 'Bot')
bins = np.linspace(0, 2000, 15)
plot = plot.map(plt.hist, 'friends_count', color = 'black', lw = 0, bins = bins)
plot.set_axis_labels('Number Following', 'Count')
sns.despine(left = True, bottom = True)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想做两件事:1.用有意义的文本替换默认因子标签,例如'bot = 0.0',以及2.在每个类别的平均数后面绘制垂直线.

这是一个自包含的例子:

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

fake = pd.DataFrame({'val': [1, 2, 2, 3, 3, 2, 1, 1, 2, 3], 'group': [0, 0, 0, 0, 0, 1, 1, 1, 1, 1]}) …
Run Code Online (Sandbox Code Playgroud)

python matplotlib seaborn

11
推荐指数
1
解决办法
7651
查看次数

Seaborn Heatmap关键词

我无法找到有关seaborn热图的任何关键词的任何文件annot_kwscbar_kws.

有一个秘密的地方我可以找到这样的东西吗?

python python-3.x seaborn

11
推荐指数
1
解决办法
7867
查看次数

Seaborn在一个循环中绘制

我正在使用Spyder并在一个循环中绘制Seaborn计数图.问题是这些图似乎是在同一个对象中相互重叠的,我最终只看到了该图的最后一个实例.如何在控制台中一个接一个地查看每个图?

for col in df.columns:
   if  ((df[col].dtype == np.float64) | (df[col].dtype == np.int64)):
       i=0
       #Later
   else :
       print(col +' count plot \n') 
       sns.countplot(x =col, data =df)
       sns.plt.title(col +' count plot')        
Run Code Online (Sandbox Code Playgroud)

python matplotlib pandas seaborn

11
推荐指数
3
解决办法
2万
查看次数

Seaborn pairplot非对角线KDE有两个类

我正在尝试查看两个不同类变量的Seaborn配对图,我希望在offdiagonals上看到KDE而不是散点图.该文档提供了有关如何为所有数据执行KDE 的说明,但我希望为每个子类的数据看到单独的KDE.建议欢迎!

我的代码看起来像这样:

plot = sns.pairplot(
    df,
    vars=labels,
    hue='has_accident',
    palette='Set1',
    diag_kind='kde',
)
Run Code Online (Sandbox Code Playgroud)

这导致:

在此输入图像描述

如您所见,数据足够密集,很难看到对角线上红色和蓝色数据的差异.

python matplotlib pandas seaborn

11
推荐指数
1
解决办法
2960
查看次数

来自枢轴的seaborn热图中的数据顺序

所以我有一个使用 seaborn 创建的热图

revels = rd.pivot("Flavour", "Packet number", "Contents")

ax = sns.heatmap(revels, annot=True, fmt="d", linewidths=0.4, cmap="YlOrRd")

plt.show()
Run Code Online (Sandbox Code Playgroud)

产生在此处输入图片说明

然而,我想做两件事,尽管查阅了 seaborn 的帮助文件(http://seaborn.pydata.org/generated/seaborn.heatmap.html),但我终其一生都无法弄清楚该怎么做

我想要做的就是以不同的方式订购口味。尽管在文本文件中输入的顺序为橙子、太妃糖、巧克力、麦芽、葡萄干、咖啡,但在绘图时不会以这种方式生成。我试图编辑 yticklabs 但这只是编辑标签而不是移动数据。

谢谢你的帮助

PS数据如下:

Packet number,Flavour,Contents
1,orange,4
2,orange,3
3,orange,2
...
1,toffee,4
2,toffee,3
3,toffee,3
...
etc.
Run Code Online (Sandbox Code Playgroud)

python matplotlib heatmap pandas seaborn

11
推荐指数
1
解决办法
2万
查看次数

使用datetime64作为x轴的Seaborn regplot

我的数据框看起来像这样:

date         score  
2017-06-04    90
2017-06-03    80
2017-06-02    70
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时:

sns.regplot(x=date, y=score, data=df)
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

TypeError: reduction operation 'mean' not allowed for this dtype
Run Code Online (Sandbox Code Playgroud)

日期的dtype是datetime64[ns],int64对于得分列.

如何隐藏date列以便它regplot可以工作?

python numpy pandas seaborn

11
推荐指数
1
解决办法
1845
查看次数

Python Seaborn jointplot不显示图表上的相关系数和p值

我试图用下面的样本绘制联合图,我从样本中看到它应该在图表上显示相关系数和p值.然而,它并没有显示我的这些价值观.有什么建议?谢谢.

import seaborn as sns
sns.set(style="darkgrid", color_codes=True)
sns.jointplot('Num of A', ' Ratio B', data = data_df, kind='reg', height=8)
plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib seaborn

11
推荐指数
3
解决办法
6015
查看次数

有没有办法改变颜色和形状来指示seaborn boxplot中的平均值?

我似乎无法找到答案的简单问题。

如何更改 Seaborn Boxplot 中均值指标的颜色和形状?

它默认为绿色三角形,通常很难看到。

我试图在 seaborn 文档和 matplotlib 文档中找到答案。还有一个关于 stackoverflow 的相关问题,有人询问如何更改与 seaborn boxplots 相关的颜色,并且能够更改除均值指示器之外的所有内容。

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

data = [[np.random.rand(100)] for i in range(3)]

sns.boxplot(data=data, showmeans=True)

plt.show()
Run Code Online (Sandbox Code Playgroud)

Seaborn 箱线图

matplotlib boxplot python-3.x seaborn

11
推荐指数
1
解决办法
5852
查看次数

防止在 Seaborn Relplot 中共享 Y 轴?

我无法让 seaborn 的relplot函数在每行上使用不同的 y 轴进行绘图(同时每列共享 x 轴)。

我可以看到seaborn 中的FacetGridcatplot方法都有一个 sharex/sharey 关键字参数可以解决我的问题,但是我在relplot.

如果打算通过访问relplot单独返回的子图,有什么方法可以解决这个问题吗?我想继续使用 relplot,因为它可以完美地处理图形大小,但FacetGrid在该领域存在很多问题。谢谢。

python seaborn

11
推荐指数
1
解决办法
2901
查看次数

seaborn:选择的 KDE 带宽为 0。无法估计密度

import pandas as pd
import seaborn as sns

ser_test = pd.Series([1,0,1,4,6,0,6,5,1,3,2,5,1])
sns.kdeplot(ser_test, cumulative=True)
Run Code Online (Sandbox Code Playgroud)

上面的代码生成以下 CDF 图:

系列的 CDF (ser_test)

但是当系列的元素被修改为:

ser_test = pd.Series([1,0,1,1,6,0,6,1,1,0,2,1,1])
sns.kdeplot(ser_test, cumulative=True)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ValueError: 无法将字符串转换为浮点数:'scott'

运行时错误:选定的 KDE 带宽为 0。无法估计密度。

这个错误是什么意思,我如何解决它以生成 CDF(即使它非常倾斜)。

编辑:我使用的是 seaborn 版本 0.9.0

完整的跟踪如下:

ValueError: could not convert string to float: 'scott'

During handling of the above exception, another exception occurred:

RuntimeError                              Traceback (most recent call last)
<ipython-input-93-7cee594b4526> in <module>
      1 ser_test = pd.Series([1,0,1,1,6,0,6,1,1,0,2,1,1])
----> 2 sns.kdeplot(ser_test, cumulative=True)

~/.local/lib/python3.5/site-packages/seaborn/distributions.py in kdeplot(data, data2, shade, vertical, kernel, bw, gridsize, …
Run Code Online (Sandbox Code Playgroud)

python data-visualization kernel-density pandas seaborn

11
推荐指数
2
解决办法
3万
查看次数