0

我想做一个seaborn countplot()。我没有数据框,但我知道我想绘制什么。

我想绘制这样的图表在此处输入图像描述

我可以在哪里更改计数/类/数据值。

我知道我需要一个数据框,但我没有任何数据。

我真的只需要一种手动绘制图表的方法。

我已经尝试过这样的事情,但我没有数据框,所以它不起作用:

data= sns.load_dataset("data")
ax = sns.countplot(x="class", data=data)

我怎样才能做到这一点,以便我可以手动绘制数据图表?假设我想像图片中那样从 0 到 3000,并在底部有 5 个 Heartbeat 类。

有什么办法可以手动做到这一点?也许用数据制作一个列表并输入它? -

4

2 回答 2

1

要创建没有任何数据的 seaborn 图:

您可以使用已经定义的数据集,seaborn例如flight_data

请参阅包含所有示例数据集的这个GitHub 存储库。

在这个例子中,我将使用flights_data

  1. 首先,使用加载数据集flights_data = sns.load_dataset("flights")
  2. 接下来,检查数据帧头部有多少数据,使用 flights_data.head()
  3. 接下来,您可以使用数据创建不同样式的图表。

例如,如果您想创建一个scatterplot,您可以使用以下语法:

sns.scatterplot(data=flights_data, x="year", y="passengers")

这将是你的结果:

在此处输入图像描述

有许多不同的方法可以绘制 seaborn 数据。

查看您提供的图表,您需要使用seaborn.countplot()

您的代码将如下所示,其中数据存储在列表中并且是可变的。

import seaborn as sns

ax = sns.barplot(x=['Normal', 'R on T', 'PVC', 'SP', 'UB'], y=[2800, 1700, 200, 90, 30])
ax.set_ylabel('Count')

要样式,请添加以下内容:

%config InlineBackend.figure_format='retina'

sns.set(style='whitegrid', palette='muted', font_scale=1.2)

graphcolorpallet = ["#01BEFE", "#FFDD00", "#FF7D00", "#FF006D", "#ADFF02", "#8F00FF"]

sns.set_palette(sns.color_palette(graphcolorpallet))

rcParams['figure.figsize'] = 12, 8

结果应该是这样的。

在此处输入图像描述

您可以在此处了解有关使用seaborn创建图表的更多信息。

于 2021-11-12T19:57:38.777 回答
0

Seaborn 可以在不使用数据框的情况下完美运行。您可以将值提供为列表或 numpy 数组。将来还将支持组织类似于数据框的字典。使用数据框的一个主要好处是 seaborn 可以使用列名自动为轴和图例放置标签(以防hue使用)。

如果您没有明确的数据,但确实有计数,则可以创建一个条形图。

import seaborn as sns

ax = sns.barplot(x=['Normal', 'R on T', 'PVC', 'SP', 'UB'], y=[2800, 1700, 200, 90, 30])
ax.set_ylabel('Count')

sns.barplot 来自计数

或者您可以countplot使用模拟数据创建一个:

import seaborn as sns

values = ['Normal'] * 2800 + ['R on T'] * 1700 + ['PVC'] * 200 + ['SP'] * 90 + ['UB'] * 30
sns.countplot(x=values)

sns.countplot 来自模拟数据

于 2021-11-12T16:41:16.563 回答