标签: seaborn

python:具有多个发行版的distplot

我正在使用seaborn绘制分布图.我想在不同颜色的同一图上绘制多个分布:

以下是我开始分配图的方法:

import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
iris = load_iris()
iris = pd.DataFrame(data= np.c_[iris['data'], iris['target']],columns= iris['feature_names'] + ['target'])

sns.distplot(iris[['sepal length (cm)']], hist=False, rug=True);
Run Code Online (Sandbox Code Playgroud)

'target'列包含3个值:0,1,2.

我想看一个萼片长度的分布图,其中target == 0,target == 1,target == 2,总共3个图.

有谁知道我是怎么做到的?

谢谢.

python seaborn

33
推荐指数
5
解决办法
4万
查看次数

python seaborn重置回matplotlib

我正在使用seaborn版本o.4和matplotlib版本1.42我有一个图表通过简单的绘图命令显示行和标记,例如.

plt.plot([1,5,3,8,4],'-bo');
Run Code Online (Sandbox Code Playgroud)

由于潜在的错误(https://github.com/mwaskom/seaborn/issues/344),在导入seaborn之后,相同的代码仅显示没有标记的行.

import seaborn as sb 
plt.plot([1,5,3,8,4],'-bo');
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:在导入seaborn之后,有没有办法将所有参数重置回原始状态?

python matplotlib marker seaborn

32
推荐指数
6
解决办法
2万
查看次数

旋转seaborn barplot的刻度标签

我试图显示带有旋转的x轴标签的图表,但图表没有显示.

import seaborn as sns
%matplotlib inline

yellow='#FFB11E'
by_school=sns.barplot(x ='Organization Name',y ='Score',data = combined.sort('Organization Name'),color=yellow,ci=None)
Run Code Online (Sandbox Code Playgroud)

此时我可以看到图像,但是在我设置xticklabel之后,我再也看不到图像只是一个对象引用了.(我会张贴图片,但我没有足够的声誉:()

by_school.set_xticklabels('Organization Name',rotation=45)

<matplotlib.axes._subplots.AxesSubplot at 0x3971a6a0>
Run Code Online (Sandbox Code Playgroud)

这里发布了一个类似的问题:在seaborn factorplot中旋转标签文本, 但解决方案无效.

python matplotlib seaborn

32
推荐指数
3
解决办法
4万
查看次数

seaborn distplot中的y轴是什么?

我有一些几何分布的数据.当我想看一下时,我会用

sns.distplot(data, kde=False, norm_hist=True, bins=100)
Run Code Online (Sandbox Code Playgroud)

结果是一张图片:

图1a

但是,箱柜高度不等于1,这意味着y轴不显示概率,它是不同的.相反,我们使用

weights = np.ones_like(np.array(data))/float(len(np.array(data)))
plt.hist(data, weights=weights, bins = 100)
Run Code Online (Sandbox Code Playgroud)

y轴应显示概率,因为箱高度总和为1:

情节1b

这里可以更清楚地看到:假设我们有一个列表

l = [1, 3, 2, 1, 3]
Run Code Online (Sandbox Code Playgroud)

我们有两个1,两个3和一个2,所以它们各自的概率是2/5,2/5和1/5.当我们使用带有3个箱子的seaborn histplot时:

sns.distplot(l, kde=False, norm_hist=True, bins=3)
Run Code Online (Sandbox Code Playgroud)

我们得到:

情节2a

如您所见,第1和第3个bin总和达到0.6 + 0.6 = 1.2,已经大于1,因此y轴不是概率.当我们使用

weights = np.ones_like(np.array(l))/float(len(np.array(l)))
plt.hist(l, weights=weights, bins = 3)
Run Code Online (Sandbox Code Playgroud)

我们得到:

在此输入图像描述

并且y轴是概率,如预期的那样为0.4 + 0.4 + 0.2 = 1.

对于每种情况下使用的两种方法,这两种情况中的箱的数量是相同的:对于几何分布的数据,100个箱,对于具有3个可能值的小阵列l,3个箱.所以箱子数量不是问题.

我的问题是:在用norm_hist = True调用的seaborn distplot中,y轴是什么意思?

python matplotlib seaborn

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

没有关于Matplotlib直方图或Seaborn distplots的箱子的轮廓

在使用seaborn和Jupyter笔记本做一些练习问题时,我意识到distplot()图表没有文档中所有示例图表所具有的各个分箱的较暗轮廓.我尝试使用Pycharm创建图表并注意到同样的事情.认为这是一个seaborn问题,我尝试使用matplotlib的一些hist()图表,只是为了获得相同的结果.

import matplotlib.pyplot as plt
import seaborn as sns
titanic = sns.load_dataset('titanic')
plt.hist(titanic['fare'], bins=30)
Run Code Online (Sandbox Code Playgroud)

得到以下图表:

在此输入图像描述

最后,我偶然发现了plt.hist()函数中的'edgecolor'参数,并将其设置为黑色就可以了.不幸的是我没有在seaborn distplot()函数中找到类似的参数,所以我仍然无法获得看起来应该如此的图表.

我考虑改变matplotlib中的rcParams,但我没有经验,我运行的以下脚本似乎什么也没做:

import matplotlib as mpl

mpl.rcParams['lines.linewidth'] = 1
mpl.rcParams['lines.color'] = 'black'
mpl.rcParams['patch.linewidth'] = 1
mpl.rcParams['patch.edgecolor'] = 'black'
mpl.rcParams['axes.linewidth'] = 1
mpl.rcParams['axes.edgecolor'] = 'black'
Run Code Online (Sandbox Code Playgroud)

我只是猜测我应该改变的价值,但再次运行我的图表显示没有变化.

然后我尝试使用mpl.rcdefaults()返回默认设置,但再一次,没有变化.

我使用conda重新安装matplotlib,但图表看起来仍然相同.我对如何更改这些图表的默认边缘颜色没有想法.我使用Conda构建运行最新版本的Python,matplotlib和seaborn.

python matplotlib python-3.x seaborn

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

使用Seaborn在一个图中绘制多个不同的图

我试图从使用seaborn的统计学习简介一书中重新创建以下情节 在此输入图像描述

我特别想用seaborn lmplot来创建前两个图并boxplot创建第二个图.主要问题是lmplot facetgrid根据这个答案创建了一个强制我为盒子图添加另一个matplotlib轴.我想知道是否有更简单的方法来实现这一目标.下面,我必须进行相当多的手动操作才能获得所需的情节.

seaborn_grid = sns.lmplot('value', 'wage', col='variable', hue='education', data=df_melt, sharex=False)
seaborn_grid.fig.set_figwidth(8)

left, bottom, width, height = seaborn_grid.fig.axes[0]._position.bounds
left2, bottom2, width2, height2 = seaborn_grid.fig.axes[1]._position.bounds
left_diff = left2 - left
seaborn_grid.fig.add_axes((left2 + left_diff, bottom, width, height))

sns.boxplot('education', 'wage', data=df_wage, ax = seaborn_grid.fig.axes[2])
ax2 = seaborn_grid.fig.axes[2]
ax2.set_yticklabels([])
ax2.set_xticklabels(ax2.get_xmajorticklabels(), rotation=30)
ax2.set_ylabel('')
ax2.set_xlabel('');

leg = seaborn_grid.fig.legends[0]
leg.set_bbox_to_anchor([0, .1, 1.5,1])
Run Code Online (Sandbox Code Playgroud)

哪个收益率在此输入图像描述

DataFrames的示例数据:

df_melt = {'education': {0: '1. < HS Grad',
  1: '4. College Grad',
  2: '3. Some College', …
Run Code Online (Sandbox Code Playgroud)

python matplotlib seaborn

28
推荐指数
1
解决办法
5万
查看次数

带有seaborn的log-log lmplot

lmplotSeaborn 的功能可以在对数对数范围内绘制吗?这是正常规模的结果

import numpy as np
import pandas as pd
import seaborn as sns
x =  10**arange(1, 10)
y = 10** arange(1,10)*2
df1 = pd.DataFrame( data=y, index=x )
df2 = pd.DataFrame(data = {'x': x, 'y': y}) 
sns.lmplot('x', 'y', df2)
Run Code Online (Sandbox Code Playgroud)

sns.lmplot('x','y',df2)

python seaborn

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

显示seaborn regplot中的回归方程

有谁知道如何使用sns.regplot或sns.jointplot在seaborn中显示回归方程?regplot似乎没有任何参数可以传递给显示回归诊断,而jointplot只显示皮尔逊R ^ 2和p值.我正在寻找一种方法来查看斜率系数,标准误差和截距.

谢谢

python regression seaborn

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

如何防止sns.countplot中重叠的x轴标签

对于情节

sns.countplot(x="HostRamSize",data=df)
Run Code Online (Sandbox Code Playgroud)

我将下面的图表与x轴标签混合在一起,我该如何避免这种情况?我应该更改图表的大小来解决这个问题吗?

在此输入图像描述

python matplotlib pandas seaborn

27
推荐指数
4
解决办法
3万
查看次数

无法在seaborn distplot中显示传奇

我是新来的蟒蛇策划并试图下面的代码绘制的分布seaborn,但无法看到传说,即test_label1test_label1对剧情.

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

plt.figure("Test Plots")
lst1 = list(np.random.rand(10))
lst2 = list(np.random.rand(10))
sns.distplot(lst1, label='test_label1', color="0.25")
sns.distplot(lst2, label='test_label2', color="0.25")

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

python matplotlib legend seaborn

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

标签 统计

python ×10

seaborn ×10

matplotlib ×7

legend ×1

marker ×1

pandas ×1

python-3.x ×1

regression ×1