Seaborn Countplot系列无法识别inpu

2024-05-16 18:06:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图把一系列的数据绘制成一个水平条形图,但我遇到了一些问题。在

这是我的系列:

HARRASSMENT 2                     80149
CRIMINAL MISCHIEF & RELATED OF    62059
ASSAULT 3 & RELATED OFFENSES      61133
GRAND LARCENY                     54090
DANGEROUS DRUGS                   35407
OFF. AGNST PUB ORD SENSBLTY &     34810
ROBBERY                           23399
BURGLARY                          22536
FELONY ASSAULT                    21941
GRAND LARCENY OF MOTOR VEHICLE    14094
MISCELLANEOUS PENAL LAW           13307
DANGEROUS WEAPONS                 12090
Name: OFNS_DESC, dtype: int64```


This is what I already tried: 
sns.countplot(y="OFNS_DESC", data=b) , b is the name of my series variable

This is my error:

ValueError: Could not interpret input 'OFNS_DESC'




Tags: of数据ismy水平绘制thisdesc
1条回答
网友
1楼 · 发布于 2024-05-16 18:06:06

如果我正确理解您的数据,那么数字allready代表这些不同类别的计数-所以您实际上只需要一个简单的条形图,而不是countplot。在

下面是使用pandas/matplotlib和seaborn bar plot函数绘制数据的代码:

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

counts = [80149, 62059, 61133, 54090, 35407, 34810, 23399, 22536, 21941, 14094, 13307, 12090]
categories = ['HARRASSMENT 2', 'CRIMINAL MISCHIEF & RELATED OF', 'ASSAULT 3 & RELATED OFFENSES', 'GRAND LARCENY', 'DANGEROUS DRUGS', 'OFF. AGNST PUB ORD SENSBLTY &', 'ROBBERY', 'BURGLARY', 'FELONY ASSAULT', 'GRAND LARCENY OF MOTOR VEHICLE', 'MISCELLANEOUS PENAL LAW', 'DANGEROUS WEAPONS']
sr = pd.Series(data=counts, index=categories)

# | using pandas/matplotlib barplot
plt.figure()
sr.plot.barh()

# | using seaborn barplot
plt.figure()
sns.barplot(x=sr.values, y=sr.index)

Output

相关问题 更多 >