标签: seaborn

为seaborn的线图中图表下方的区域着色?

我使用seaborn的线图根据数据进行绘制,其代码如下所示:

sns.lineplot( x=df["#Energy"], y=df["py"]+df["px"]+df["pz"])
Run Code Online (Sandbox Code Playgroud)

我得到的情节是

在此输入图像描述

现在我想将其下方的区域涂成不透明的蓝色,我该怎么做,我在seaborn lineplot文档中找不到与此相关的任何内容,感谢所有帮助的努力

python matplotlib line-plot seaborn

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

如何设置seaborn中的色调级别?

通过以下代码,我可以使用seaborn的散点图来绘制数据,并将某些颜色分配给数据值。

如何设置此示例中使用的颜色数量?(例如,如果我只想使用两种颜色或超过示例中显示的 6 种颜色)

import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset('tips')

print("tips.columns=", tips.columns) # tips.columns= Index(['total_bill', 'tip', 'sex', 'smoker', 'day', 'time', 'size'], dtype='object')


sns.scatterplot(data=tips, x="total_bill", y="tip", hue="total_bill", )
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python scatter-plot seaborn

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

具有不同范围的分割小提琴图

我正在尝试使用seaborn中的分割小提琴图来绘制具有不同范围的两个变量。

这是我到目前为止所做的:

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

df1 = pd.read_csv('dummy_metric1.csv')
df2 = pd.read_csv('dummy_metric2.csv')

fig, ax2 = plt.subplots()

sns.set_style('white')
palette1 = 'Set2'
palette2 = 'Set1'
colors_list = ['#78C850', '#F08030',  '#6890F0',  '#A8B820',  '#F8D030', '#E0C068', '#C03028', '#F85888', '#98D8D8']

ax1 = sns.violinplot(y=df1.Value,x=df1.modality,hue=df1.metric, palette=palette1, inner="stick")
xlim = ax1.get_xlim()
ylim = ax1.get_ylim()
for violin in ax1.collections:
    bbox = violin.get_paths()[0].get_extents()
    x0, y0, width, height = bbox.bounds
    violin.set_clip_path(plt.Rectangle((x0, y0), width / 2, height, transform=ax1.transData))
ax1.set_xlim(xlim)
ax1.set_ylim(ylim)
ax1.set_title("dummy")
ax1.set_ylabel("metric1")
ax1.set_xlabel("Modality") …
Run Code Online (Sandbox Code Playgroud)

python matplotlib seaborn violin-plot

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

如何在 Python 中绘制宽度可变但没有间隙的条形图,并将条形宽度添加为 x 轴上的标签?

我有三个列表:x、y 和 w,如图所示:x 是对象的名称。y 是其高度,w 是其宽度。

x = ["A","B","C","D","E","F","G","H"]

y = [-25, -10, 5, 10, 30, 40, 50, 60]

w = [30, 20, 25, 40, 20, 40, 40, 30]
Run Code Online (Sandbox Code Playgroud)

我想在 Python 中将这些值绘制在条形图中,其中 y 代表条形的高度,w 代表条形的宽度。

当我使用它绘制它时

colors = ["yellow","limegreen","green","blue","red","brown","grey","black"]

plt.bar(x, height = y, width = w, color = colors, alpha = 0.8)
Run Code Online (Sandbox Code Playgroud)

我得到一个如图所示的图: 在此输入图像描述

接下来,我尝试使用以下方法标准化宽度,以便条形图不会彼此重叠

w_new = [i/max(w) for i in w]
plt.bar(x, height = y, width = w_new, color = colors, alpha = 0.8)
#plt.axvline(x = ?)
plt.xlim((-0.5, 7.5))
Run Code Online (Sandbox Code Playgroud)

我得到了比以前更好的结果,如下所示: …

python matplotlib python-3.x pandas seaborn

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

对seaborn histplot 中的重叠条有一些指示

在用seaborn绘制的直方图中,当条形由于使用而重叠时hue,颜色会发生变化,通常无法区分。这使得很难向人们解释这些情节。当有 10 个用渐变绘制的类时,这变得越来越困难,并且理解哪种颜色在哪种颜色上变得更加困难。那么,如何在绘图或图例中显示结果颜色是由于多个条的重叠而产生的。

# imports
from sklearn.datasets import load_iris
from matplotlib import pyplot as plt
%matplotlib inline
import seaborn as sns

# getting the data
iris = load_iris(as_frame=True)['frame']

# make the histogram
sns.set(rc={'figure.figsize':(20, 5)})
sns.histplot(data=iris, x='sepal length (cm)', hue='target')
plt.show()
Run Code Online (Sandbox Code Playgroud)

在突出显示区域中显示重叠: 在此输入图像描述

我想坚持使用直方图。

我该怎么做呢?

python matplotlib python-3.x seaborn

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

如何将统计注释(例如 p 值)插入到seaborn 图形级图(例如 catplot)中?

目标:给定一个具有多行、分组条形图和映射条形图的seaborn catplot (kind="bar"),如何添加统计注释(p 值)。

来自@Trenton McKinney的以下代码生成了我的图表,没有统计注释。我想在此图中插入统计注释:

import seaborn as sns

tips = sns.load_dataset("tips")

g = sns.catplot(x="sex", y="total_bill", hue="smoker", row="time", data=tips, kind="bar", ci = "sd", 
    edgecolor="black", errcolor="black", errwidth=1.5, capsize = 0.1, height=4, aspect=.7,alpha=0.5)

g.map(sns.stripplot, 'sex', 'total_bill', 'smoker', hue_order=['Yes', 'No'], order=['Male', 'Female'],
  palette=sns.color_palette(), dodge=True, alpha=0.6, ec='k', linewidth=1)
Run Code Online (Sandbox Code Playgroud)

没有统计注释的 Catplot


我尝试过的:我尝试使用statannotations.Annotator.Annotator.plot_and_annotate_facets()。但是,我无法让它正常工作。

我还尝试使用statannotations.Annotator.Annotator.new_plot()。然而,这仅适用于条形图,但不适用于猫形图。这是基于@r-beginners 的相应代码:

import seaborn as sns
from statannotations.Annotator import Annotator
%matplotlib inline
import matplotlib.pyplot as plt

df = sns.load_dataset("tips")

x="sex"
y="total_bill"
hue="smoker"
hue_order=['Yes', 'No']

pairs …
Run Code Online (Sandbox Code Playgroud)

python matplotlib bar-chart seaborn facet-grid

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

python中连接数据点的线的箱线图

我试图根据与点相关的特定关系来连接线。在此示例中,线条将连接玩家所在的球场。我可以创建基本结构,但还没有找到一种相当简单的方法来创建此附加功能。

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

df_dict={'court':[1,1,2,2,3,3,4,4],
         'player':['Bob','Ian','Bob','Ian','Bob','Ian','Ian','Bob'],
         'score':[6,8,12,15,8,16,11,13],
         'win':['no','yes','no','yes','no','yes','no','yes']}

df=pd.DataFrame.from_dict(df_dict)

ax = sns.boxplot(x='score',y='player',data=df)
ax = sns.swarmplot(x='score',y='player',hue='win',data=df,s=10,palette=['red','green'])
plt.show()

Run Code Online (Sandbox Code Playgroud)

该代码生成以下图减去我所追求的灰线。 python 中的箱线图

python boxplot pandas seaborn

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

如何在seaborn中的两个线图之间填充?

我有一个图表,将贝叶斯平均点数据绘制在一条线上,并在平均值周围有可信的间隔。

在此输入图像描述

我正在尝试用半透明颜色填充两条可信线之间,以便平均线真正弹出。我尝试过以下方法:

plt.fill_between(b.get_data(), c.data_get(), color='blue', alpha = .5)
Run Code Online (Sandbox Code Playgroud)

我正在从推理集中提取这些数据arviz。这是一个玩具数据集。

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
mean = np.array([861.98525 , 705.23875 , 640.14575 , 658.727625, 728.23775 ,
       792.4645  , 803.045375, 763.425875, 721.785375, 713.182375,
       740.543375, 781.466875])
confidence1 = np.array([788.   , 607.   , 493.   , 443.975, 435.975, 412.   , 366.975,
       295.   , 243.   , 207.   , 181.   , 161.   ])
confidence2 = np.array([ 938.   ,  811.   ,  815.   ,  935.025, 1150.025, 1391.05 ,
       1556.05 , …
Run Code Online (Sandbox Code Playgroud)

python seaborn

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

如何使用不平衡的分类数据缩放seaborn联合图的边际kdeplot

如何缩放seaborn联合图的边际kdeplot?

假设我们有 1000 个类型“a”的数据、100 个类型“b”的数据和“100”个类型“c”的数据。

在这种情况下,边际 kdeplot 的尺度看起来并不相同,因为分类数据的大小完全不同。

我如何使这些相同?

我制作了一个玩具脚本,如下所示:

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

ax, ay = 1 * np.random.randn(1000) + 2, 1 * np.random.randn(1000) + 2
bx, by = 1 * np.random.randn(100) + 3, 1 * np.random.randn(100) + 3
cx, cy = 1 * np.random.randn(100) + 4, 1 * np.random.randn(100) + 4

a = [{'x': x, 'y': y, 'kind': 'a'} for x, y in zip(ax, ay)]
b …
Run Code Online (Sandbox Code Playgroud)

scaling matplotlib kernel-density seaborn jointplot

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

如何在热图右侧添加自定义刻度

给定以下示例数据

data =\
{'q1': [6, 4, 4, 4, 6, 6, 6, 4, 6, 6, 6, 6],
 'q2': [3, 3, 3, 4, 3, 3, 4, 3, 4, 3, 4, 1],
 'q3': [6, 3, 4, 4, 4, 4, 6, 6, 6, 6, 4, 1],
 'q4': [3, 6, 6, 6, 6, 6, 4, 4, 6, 4, 6, 4],
 'q5': [4, 3, 3, 3, 3, 6, 6, 4, 4, 6, 3, 4],
 'q6': [3, 3, 4, 4, 6, 3, 3, 1, 6, 4, 4, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib heatmap seaborn

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