标签: seaborn

如何在seaborn ecdf图上找到axhline交点上的x值?

我有一个像这样的 ecdf 图:

penguins = sns.load_dataset("penguins")
fig, ax = plt.subplots(figsize = (10,8))
sns.ecdfplot(data=penguins, x="bill_length_mm", hue="species")
ax.axhline(.25, linestyle = '--', color ='#cfcfcf', lw = 2, alpha = 0.75)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如何找到这条相交轴线上的x值?

python matplotlib ecdf seaborn

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

如何使用seaborn制作气泡图

   import matplotlib.pyplot as plt
    import numpy as np
    # data
    x=["IEEE", "Elsevier", "Others"]
    y=[7, 6, 2]
    import seaborn as sns
    plt.legend()
    plt.scatter(x, y, s=300, c="blue", alpha=0.4, linewidth=3)
    plt.ylabel("No. of Papers")
    plt.figure(figsize=(10, 4)) 
Run Code Online (Sandbox Code Playgroud)

我想制作一个如图所示的图表。我不确定如何提供期刊和会议类别的数据。(目前,我只包括一个)。另外,我不确定如何为每个类别添加不同的颜色。 气泡图

python bubble-chart seaborn

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

将 xlabel 包裹在 Seaborn Plot 中

一直在尝试修改我的情节,以便可以包装 xlabel。
看过类似问题的一些建议。
但我无法在这方面使用它们。
ax.set_xticklabels 代码不会包装标签。
plt.xticks 代码抛出错误 -
AttributeError: 'Text' object has no attribute 'expandtabs'

plt.figure(figsize = (7,5))
ax = sns.countplot(data = df3, x = df3.PaymentMethod, hue = df3.Churn)
#ax.set_xticklabels(ax.get_xticklabels(), ha="right", horizontalalignment = 'center', wrap = True)
plt.xticks([textwrap.fill(label, 10) for label in ax.get_xticklabels()], 
           rotation = 10, fontsize=8, horizontalalignment="center")
Run Code Online (Sandbox Code Playgroud)

具有重叠 xlabel 的绘图图像 在此输入图像描述

python plot matplotlib axis-labels seaborn

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

python seaborn:按色调显示 alpha

在seaborn中,色调为组设置不同的颜色。我可以alpha根据 中的组进行设置吗JointGrid?或者甚至在单个数据点上?

sns.set_theme()
jg = sns.JointGrid(data=df_sns, x='x', y='y', hue='hue')
jg.plot_joint(sns.scatterplot)
jg.plot_marginals(sns.histplot, kde=False)

jg.set_axis_labels(xlabel='x', ylabel='y')
jg.fig.tight_layout()
Run Code Online (Sandbox Code Playgroud)

python seaborn

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

将 2 个不同的蒙版应用于 seaborn 热图或手动更改单元格的颜色

我有一个数据框,我想绘制 seaborn 热图:

import seaborn as sns

res = sns.heatmap(df, cmap='flare',xticklabels=1, yticklabels=1,linecolor='white',linewidths=0.5,
                 cbar=True,mask=df.isnull(),cbar_kws={'shrink': 0.6},vmin=vmin, vmax=vmax)
Run Code Online (Sandbox Code Playgroud)

我已经为 NaN 单元应用了掩码。现在,我想通过颜色图中没有的自定义颜色(例如蓝色)更改几个单元格的颜色,以表明这些单元格属于另一个类别。

我的问题是:是否可以将 2 个或更多不同颜色的蒙版应用于 seaborn 热图,或者手动将单元格的颜色更改为完全另一种颜色?

在此输入图像描述

mask matplotlib seaborn

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

匹配两个seaborn图的图例颜色

我有这三个子图,我需要在顶部匹配下方的两个子图的图例中设置大陆的颜色,即欧洲 = 蓝色,亚洲 = 红色,等等。有没有办法做到这一点?我正在使用 Python、seaborn 和 Matplotlib。这是我的代码和结果图:

  fig = plt.figure(figsize=(20,10))


ax1 = plt.subplot(2, 1, 1)
diseases.plot(kind="barh", ax = ax1, width = 0.9, cmap = 'Set1_r')
ax1.set_xticks(np.arange(0,251,25))
ax1.set_ylabel('Countries', fontsize = 15)
ax1.legend(fontsize = 12)

ax2 = plt.subplot(2, 2, 3)
sns.barplot(x = smok_fem.female_smokers, y = smok_fem.index , hue='continent', data = smok_fem, ax = ax2,
            dodge = False, palette = 'tab10')
ax2.set_xlabel('Female Smokers', fontsize = 14)
ax2.set_ylabel('Countries', fontsize = 14)
ax2.legend(fontsize = 14, markerscale = 2, facecolor = 'w')

ax3 = plt.subplot(2, …
Run Code Online (Sandbox Code Playgroud)

python matlab matplotlib pandas seaborn

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

仅显示列值而不是 catplot 子图标题中的 column_name = 列值

我正在尝试生成不同的箱线图,描述某些产品系列和行业组(“生产”、“贸易”、“商业”、“休闲与福祉”)的变量分布。

我想知道:

  1. 如果有办法在子图标题中仅显示“生产”、“贸易”、“商业”和“休闲与福祉”,而不是每次都显示“industry_group = Production”等
  2. 如果有办法将这些子图标题从每个子图的上边框提高一点(在我发布的图像中,您可以清楚地看到它们没有空间)

在我正在使用的代码下方,这里有一张图像向您展示我得到的内容 --> Catplot Image

import matplotlib.pyplot as plt
import seaborn as sns

sns.set_context("talk")

boxplot = sns.catplot(
    x='family', 
    y='lag',
    hue="SF_type",
    col="industry_group",
    data=df1, 
    kind="box",
    orient="v",
    height=8, 
    aspect=2,
    col_wrap=1,
    order=fam_sort,
    palette='Set3',
    notch=True,
    legend=True,
    legend_out=True,
    showfliers=False,
    showmeans=True,
    meanprops={
        "marker":"o",
        "markerfacecolor":"white", 
        "markeredgecolor":"black",
        "markersize":"10"
    }
)

boxplot.fig.suptitle("Boxplots by Product Basket, Industry Group & SF Type", y=1.14)

#repeat xticks for each plot
for ax in boxplot.axes:
    plt.setp(ax.get_xticklabels(), visible=True, rotation=75)
    plt.subplots_adjust(hspace=1.2, top = 1.1)
    
#remove axis titles
for ax in boxplot.axes.flatten(): …
Run Code Online (Sandbox Code Playgroud)

python seaborn catplot

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

Seaborn clustermap 颜色条调整

在调整颜色条时遇到几个问题seaborn.clustermap。我试图:

  1. 将颜色条定向为水平方向
  2. 更改颜色条边框颜色
  3. 更改颜色条刻度长度

我检查过文档没有figure.colorbar效果。

最小代码:

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

#data
corr = np.corrcoef(np.random.randn(10, 200))

#clustermap
kws = dict(cbar_kws=dict(label='Label', ticks=[0,0.50,1], orientation='horizontal'), figsize=(6, 6))
sns.clustermap(corr, cmap="Blues", xticklabels=False, yticklabels=False, **kws)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python matplotlib seaborn

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

将颜色条移近热图 (Seaborn)

我的颜色条距离热图底部很远。有办法让它靠近一点吗?

我的代码是:


import seaborn as sns

Granger2 = Granger
Granger2.columns = Granger_colnames
Granger2.index = Granger_rownames

fig, ax = plt.subplots(figsize=(6,25)) 
sns.heatmap(Granger2, cmap=rvb, cbar=True, ax=ax,linewidths=.5,cbar_kws={"orientation": "horizontal"})
ax.xaxis.tick_top() # x axis on top
ax.xaxis.set_label_position('top')

#Remove ticks
ax.tick_params(axis='both', which='both', length=0)

# Drawing the frame
ax.axhline(y = 0, color='k',linewidth = 1)
ax.axhline(y = Granger2.shape[0], color = 'k',linewidth = 1)  
ax.axvline(x = 0, color = 'k', linewidth = 1)
ax.axvline(x = Granger2.shape[1], color = 'k', linewidth = 1)

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

在此输入图像描述

python data-visualization matplotlib heatmap seaborn

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

seaborn boxplot 和 stripplot 点未按色调在 x 轴上对齐

我有以下代码来绘制箱线图并将所有数据点覆盖在条形图上。

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy.random as rnd

f = plt.figure(figsize=[18,12])
ax = f.add_subplot(111)
sns.boxplot(x='month', y='ffdi', hue='scenario', data=df_diff_concat, ax=ax)
sns.stripplot(x="month", y="ffdi",hue='scenario', data=df_diff_concat, ax=ax)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

数据点未与其所属条形的中线垂直对齐。

如何解决这个问题?

python matplotlib boxplot seaborn

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