标签: seaborn

使seaborn.PairGrid()看起来像pairplot()

在下面的示例中,我如何使用seaborn.PairGrid()来重现创建的图seaborn.pairplot()?具体来说,我希望对角线分布跨越垂直轴。带白色边框等的标记也很棒。谢谢!

import seaborn as sns
import matplotlib.pyplot as plt

iris = sns.load_dataset('iris')

# pairplot() example
g = sns.pairplot(iris, kind='scatter', diag_kind='kde')
plt.show()

# PairGrid() example
g = sns.PairGrid(iris)
g.map_diag(sns.kdeplot)
g.map_offdiag(plt.scatter)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述在此输入图像描述

python seaborn facet-grid

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

如何反转seaborn散点图的调色板?

我正在绘制经纬度房屋价格的散点图。 我想反转调色板,使红色描绘出最昂贵的房子。

plt.figure(figsize=(12,8))
sns.scatterplot(x='long' ,y='lat' ,data=non_top_1_perc ,hue='price' ,edgecolor=None , 
alpha=0.2,palette='RdYlGn' ) 
Run Code Online (Sandbox Code Playgroud)

这是情节

python seaborn

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

将线图添加到 Facetgrid 图中

RelPlot使用 Seaborn 绘制了一个简单的图,它返回了一个Facetgrid对象。我使用的代码如下:

import seaborn as sns

palette = sns.color_palette("rocket_r")

g1 = sns.relplot(
    data=df,
    x="number_of_weeks", y="avg_streams",
    hue="state", col="state",
    kind="line", palette=palette,
    height=5, aspect=1, facet_kws=dict(sharex=False), col_wrap=3, 
)
Run Code Online (Sandbox Code Playgroud)

显示了以下情节: 阴谋

我正在使用的数据框具有以下结构:

   avg_streams  date    year number_of_weeks state
4   0.104011    31-01   2020    4   it
5   1.211951    07-02   2020    5   it
6   0.559374    14-02   2020    6   it
7   0.304257    21-02   2020    7   it
8   0.199218    28-02   2020    8   it
... ... ... ... ... ...
175 -0.938890   26-06   2020    25  br
176 -0.483821 …
Run Code Online (Sandbox Code Playgroud)

python matplotlib subplot line-plot seaborn

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

Seaborn 热图条件边框

我有一个包含基因名称、倍数变化和 p 值的数据框。

我可以用seaborn.heatmap颜色渐变来绘制折叠变化。

如何在 p 值 < 0.05 的特定单元格周围添加条件边框?

heatmap seaborn

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

如何将数据框中的列绘制为子图

我在这里做错了什么?我想创建新的数据框,df并使用日期作为每个新创建的数据框(Emins、FTSE、Stoxx 和 Nikkei)折线图中的 x 轴。

我有一个df从 data.xlsx 创建的名为数据框,它看起来像这样:

    Dates         ES1     Z 1     VG1     NK1
0   2005-01-04  -0.0126  0.0077 -0.0030  0.0052
1   2005-01-05  -0.0065 -0.0057  0.0007 -0.0095
2   2005-01-06   0.0042  0.0017  0.0051  0.0044
3   2005-01-07  -0.0017  0.0061  0.0010 -0.0009
4   2005-01-11  -0.0065 -0.0040 -0.0147  0.0070
3670    2020-09-16  -0.0046 -0.0065 -0.0003 -0.0009
3671    2020-09-17  -0.0083 -0.0034 -0.0039 -0.0086
3672    2020-09-18  -0.0024 -0.0009 -0.0009  0.0052
3673    2020-09-23  -0.0206  0.0102  0.0022 -0.0013
3674    2020-09-24  0.0021  -0.0136 -0.0073 -0.0116
Run Code Online (Sandbox Code Playgroud)

df …

python date matplotlib pandas seaborn

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

如何在带有多列图的seaborn catplot中添加垂直网格线

我想使用以下代码绘制猫图。

import seaborn as sns
sns.set_theme(style="ticks")
exercise = sns.load_dataset("exercise")
sns.set_style({'axes.grid': True})
g = sns.catplot(x="time", y="pulse", hue="kind", data=exercise)
Run Code Online (Sandbox Code Playgroud)

但这不会绘制垂直网格线。我怎样才能添加它们?

matplotlib python-3.x seaborn

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

ModuleNotFoundError:jupyter笔记本中没有名为“seaborn”的模块

尝试导入seaborn时,我不断收到错误:ModuleNotFoundError:没有名为“seaborn”的模块。 在此输入图像描述

我已经使用 pip install seaborn 和 conda install seaborn 安装了seaborn。在此输入图像描述

我在seaborn上看到我不是唯一遇到此问题的人,但我无法解决此问题,我如何检查并更新我的pip/conda是否指向与我的解释器相同的安装?在此输入图像描述

编辑
我尝试在笔记本中运行 !pip install seaborn,但这仍然不起作用。我还创建了自己的 conda env 并安装了seaborn(它在照片中显示了基础),但这也不起作用。在此输入图像描述

python pip conda seaborn jupyter

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

Seaborn PairPlot 的正确对角线 Y 轴

我正在尝试使用seabornpairplot进行一些可视化,并且我需要有正确的对角线Y轴(可见!),根本没有标准化(只是计数)或密度标准化(bin值的总和= 1)。更好的方法是什么?

这就是我正在尝试做的事情:

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

data = np.random.normal(0,2,[1000,3])

sss = sns.pairplot(pd.DataFrame(data),corner=True)
sss.axes[0][0].yaxis.tick_right()
sss.axes[0][0].get_yaxis().set_visible(True)
sss.axes[0][0].axis('on')
sss.axes[0][0].yaxis.set_label_position("right")
sss.axes[0][0].set_ylabel('Counts')
Run Code Online (Sandbox Code Playgroud)

它给了我下图:

在此输入图像描述

显然,我这里的归一化是错误的(可能是在最大值上归一化的)并且 y 轴线本身丢失了。

python matplotlib seaborn

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

如何用单独的置信区间分割小提琴图

我怎么能做出这样的小提琴人物呢?我想包括置信区间 在此输入图像描述 我可以使用下面的代码用四边形绘制分割图,但不能绘制均值和置信度。数据可以在这里找到。https://drive.google.com/file/d/18GrncA2GmJd38tVGZZ5yylR6Cf61XsGp/view?usp=sharing

import matplotlib.pyplot as plt
import seaborn as sns

sns.violinplot(x="six.categories", y="non_poor", hue="year", data=df, split=True,
               inner="quart", palette={"2019": "b", "2020": "y"})
sns.despine(left=True)

plt.xticks(np.arange(6),["Nonpoor\nWhite", "Poor\nWhite", "Poor\nBlack", "Nonpoor\nBlack", "Poor\nHispanic", "Nonpoor\nHispanic"])
Run Code Online (Sandbox Code Playgroud)

python seaborn violin-plot

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

matplotlib 中每月的大刻度和每周的小刻度

我有这个图,显示一年中每一天每小时的温度在此输入图像描述

这是我写的代码:

mydateparser = lambda x: datetime.strptime(x, "%Y-%m-%d")
df = pd.read_csv("Vaderdata.csv",
           usecols=['Date','Time','Temp'],
           parse_dates=['Date'],
           date_parser=mydateparser)

pivot = pd.pivot_table(df, values='Temp',columns='Date',index='Time')
fig, ax = plt.subplots(figsize = (12,6)) 

clr = sns.color_palette("coolwarm", as_cmap=True)
fig = sns.heatmap(pivot, center = 0,cmap = clr )

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

正如您所看到的,x 轴的描述性并不强。我希望每个新的月份都有一个带有标签的大勾号,每个新的一周都有一个小勾号。我找到了一些将日期时间格式化为字符串的示例,以便 x 轴至少显示一些内容而不仅仅是零,但我无法找到如何执行我刚才描述的操作。

python matplotlib seaborn

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