标签: seaborn

如何放大seaborn/matplotlib中的直方图?

我制作了一个看起来像这样的直方图:

在此处输入图片说明

我用来生成这个图的代码:

sns.countplot(table.column_name)
Run Code Online (Sandbox Code Playgroud)

如您所见,由于数据分布不均,整个直方图聚集在左端。

如何在左端放大?

我尝试过的一种方法,它给了我稍微好一点的结果:

plt.xlim(0,25)
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

python matplotlib histogram seaborn

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

Seaborn PointPlot 类别排序问题

我一直在尝试在 Seaborn 中使用 pointplot,总的来说它可以满足我的需求,而且我对它的功能印象深刻。

我的用例是相当标准的:

sns.pointplot(x="Category_1", y="Parameter", hue="Category 2", data=df);
Run Code Online (Sandbox Code Playgroud)

我的问题是我用于色调的类别包含以下形式的字符串:

"1 string1", "2 string2", "3 string3", etc....
Run Code Online (Sandbox Code Playgroud)

这是设计使然,以便我可以在排序时获得特定顺序。但是,当我运行 Seaborn 函数时,顺序是不同的。

Seaborn 是按照什么逻辑进行排序的,有没有办法强制执行所需的顺序。如果我做:

A = df.Category2.unique()
A.sort()
Run Code Online (Sandbox Code Playgroud)

我得到了我想要的列表顺序。

python seaborn

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

Seaborn Python xtick 标签不会旋转

我很抱歉再次问这个问题,因为我知道这之前已经被问过几次了,我已经研究了我可以在其他所有线程上找到的所有其他解决方案,但没有一个对我有用。无论我尝试什么,这些 xlabels 仍然总是水平出现并混杂在一起。我不知道为什么我的不工作而其他人工作,但我怀疑这与我在图中有三个子图有关。

我已经尝试了以下,以及许多其他的事情:

ax1.set_xticklabels(rotation=30) <-- 什么也没发生

axs[0].set_xticklabels(rotation=30) <-- 错误

plt.xticks(rotation=45) <-- 什么也没发生

这是代码和图。

    customer_rev_df = pd.DataFrame(customer_rev, columns='Week Revenue Pieces Stops'.split())
    print(customer_rev_df.set_index('Week'))
    sns.set_style(style='whitegrid')
    fig, axs = plt.subplots(ncols=3, figsize=(16, 6))
    ax1 = sns.factorplot(x='Week', y='Revenue', data=customer_rev_df, ax=axs[0])
    ax2 = sns.factorplot(x='Week', y='Stops', data=customer_rev_df, ax=axs[1])
    ax3 = sns.factorplot(x='Week', y='Pieces', data=customer_rev_df, ax=axs[2])
    axs[0].set_ylabel('Revenue')
    axs[1].set_ylabel('Stops')
    axs[2].set_ylabel('Pieces')
    axs[0].set_title('Weekly Revenue')
    axs[1].set_title('Weekly Stops')
    axs[2].set_title('Weekly Pieces')
    plt.tight_layout()
    fig.show()
Run Code Online (Sandbox Code Playgroud)

我的图的例子

我承认我还比较新,所以放轻松!任何帮助将不胜感激。谢谢!

python matplotlib seaborn

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

在python中指定热图的颜色增量

有没有办法在 Seaborn 或 Matplotlib 中指定热图色标的颜色增量。例如,对于包含 0-1 之间的归一化值的数据帧,要指定 100,离散的颜色增量,以便将每个值与其他值区分开来?

先感谢您

matplotlib heatmap python-3.x seaborn

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

在python中使用seaborn为两个变量绘制kdeplots

我正在使用下面的代码为一个变量绘制两个 kdeplots:

income_df = attrition_df[['Annual Income','Terminated']]
income_left = income_df.loc[income_df['Terminated'] == 1]
income_stayed = income_df.loc[income_df['Terminated'] == 0]
x = np.array(income_left['Annual Income'].values)
y = np.array(income_stayed['Annual Income'].values)
ax = sns.kdeplot(x,y, shade=True)
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误:

ValueError:观察的数量必须大于变量的数量。

我不明白为什么会抛出这个错误以及如何绘制图表。有人可以帮我解决这个问题。意图是得到类似的东西: 在此处输入图片说明

python seaborn

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

使用不同大小的 y 轴制作相同的 matplotlib 图

我正在尝试制作一系列 matplotlib 图,为不同类别的对象绘制时间跨度。每个绘图都有一个相同的 x 轴和绘图元素,如标题和图例。但是,每个图中出现的类别不同;每个图代表一个不同的采样单元,每个单元只包含所有可能类别的一个子集。

我在确定如何设置图形和轴尺寸时遇到了很多麻烦。水平尺寸应始终保持不变,但垂直尺寸需要缩放到该采样单元中表示的类数。对于每个绘图,y 轴上每个条目之间的距离应该相等。

似乎我的困难在于我可以用 设置图形的绝对大小(以英寸为单位)plt.figure(figsize=(w,h)),但我只能用相对尺寸设置轴的大小(例如,fig.add_axes([0.3,0.05,0.6,0.85])这会导致我的 x 轴标签变得类数少时切断。

这是我想要得到的东西与我得到的东西的 MSPaint 版本。 所需输出与当前输出

这是我使用的代码的简化版本。希望这足以确定问题/解决方案。

import pandas as pd
import matplotlib.pyplot as plt
import pylab as pl
from matplotlib import collections as mc
from matplotlib.lines import Line2D
import seaborn as sns

# elements for x-axis
start = 1
end = 6
interval = 1 # x-axis tick interval
xticks = [x for x in range(start, end, interval)] # create x ticks

# items needed for legend …
Run Code Online (Sandbox Code Playgroud)

python matplotlib python-3.x pandas seaborn

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

带有 Pandas groupby 和 .plot 功能的 Seaborn 调色板

尝试使用 seaborn 调色板绘制一些数据时,我遇到了一个非常令人沮丧的问题。我的工作流程是对我的数据框执行 groupby 操作,并使用如下代码将每个组绘制为自己的曲线:

import seaborn as sns; sns.set_style('whitegrid')
f, (ax1, ax2) = plt.subplots(1, 2, sharey=True, figsize=(16, 6))

inner = d.groupby(['dr_min', 'dr_max'])
n = len(inner)
cmap = sns.color_palette("Blues", n_colors=n)
inner.plot(x='limit_l', y='lccdf', ax=ax1, color=cmap, legend=False)
inner.plot(x='limit_r', y='rcdf', ax=ax2, color=cmap, legend=False)
Run Code Online (Sandbox Code Playgroud)

我希望看到我的每个 groupby 参数的曲线,从颜色图中可以看到清晰的阴影,如下所示: 在此处输入图片说明

相反,我的曲线如下所示,根本没有颜色等级。谁能帮助我理解为什么会发生这种情况?

在此处输入图片说明

python plot matplotlib pandas seaborn

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

seaborn 不会保存整个图形,而是保存其中的一部分

我在 python 中使用 seaborn 来绘制和保存图形。在 jupyter notebook 中,它看起来像这样。

全图

但是当我使用下面的代码来保存图形时,它是这样显示的。 只是其中的一部分

我不知道为什么。这是我的python代码。

whole_pt = whole_rules_df.pivot_table(index='whole_rules_from', columns='whole_rules_to', values='whole_rules_value', aggfunc=np.sum)
f, ax = plt.subplots(figsize=(12,8))
one_heat = sns.heatmap(whole_pt, fmt="d",cmap='YlGnBu', ax=ax,vmin=0,vmax=1)
one_heat.get_figure().savefig('whole_rules.jpg')
Run Code Online (Sandbox Code Playgroud)

python matplotlib seaborn

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

Pyplot:为更大的标题留出空间

sns.boxplot(data=df, width=0.5)
plt.title(f'Distribution of scores for initial and resubmission\
           \nonly among students who resubmitted at all.\
           \n(n = {df.shape[0]})')
Run Code Online (Sandbox Code Playgroud)

我想使用更大的字体,并在顶部的白边留出更多的空间,这样标题就不会被塞进去。令人惊讶的是,尽管进行了一些认真的谷歌搜索,但我完全无法找到该选项!

python matplotlib seaborn

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

针对海底散点图中的不同类别调整不同的透明度

我希望散点图中的不同类具有不同的alpha值(透明度)。

sns.scatterplot(x="BorrowerAPR", y="LoanOriginalAmount", data=df_new, 
                alpha=0.03, hue="LoanStatus")
Run Code Online (Sandbox Code Playgroud)

期望Class 1 alpha为0.2。

 当前图片

python matplotlib seaborn

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

标签 统计

seaborn ×10

python ×9

matplotlib ×8

pandas ×2

python-3.x ×2

heatmap ×1

histogram ×1

plot ×1