无法在python中使用matplotlib库正确绘制分类数据

无法在python中使用matplotlib库正确绘制分类数据,python,matplotlib,data-visualization,data-analysis,Python,Matplotlib,Data Visualization,Data Analysis,以下是我分配的3项数据分析任务: 同时显示投诉类型和城市 绘制计数与投诉类型的条形图 显示主要投诉类型及其计数 这是我的密码: import pandas as pd import numpy as np work_on = data[['Complaint Type','City']] import matplotlib.pyplot as plt from matplotlib import style %matplotlib inline koten = work_on['Com

以下是我分配的3项数据分析任务:

  • 同时显示投诉类型和城市
  • 绘制计数与投诉类型的条形图
  • 显示主要投诉类型及其计数
这是我的密码:

import pandas as pd
import numpy as np

work_on = data[['Complaint Type','City']]

import matplotlib.pyplot as plt
from matplotlib import style
%matplotlib inline

koten = work_on['Complaint Type'].value_counts().head(10).plot(kind='bar')
koten
-- --显示条形图,但使用以下代码时:

style.use('ggplot')
plt.plot(work_on['Complaint Type'].value_counts().head(10))
plt.xlabel('Values')
plt.ylabel('Names')
plt.title('first')
plt.show()
--这会引发一个错误: ValueError:无法将字符串转换为浮点:“交通信号条件”

我的问题是:我正在使用.plot(kind=)方法,该方法仅适用于显示我共享的图形的kind='bar',但当我使用matplotlib方法时,它开始给我带来错误,例如:ValueError:无法将字符串转换为float:“交通信号条件”。python中还有其他好的方法来显示这样的非数字数据吗

以下是我的数据:

从这个问题上看,不清楚所需的绘图应该实际显示什么。如果是跨不同类别的直线图,则需要向
plt.plot
函数提供类别的索引

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

df = pd.DataFrame([])
df["ComplaintType"] = np.random.choice(list("ABCDEFGHIJ"), size=50)

counts = df["ComplaintType"].value_counts()
plt.plot(range(len(counts)), counts)
plt.xticks(range(len(counts)), counts.index)
plt.show()


然而,通过一条线连接不同类别的意义究竟有多大,这有点令人怀疑。

plt.plot
绘制数字数据。你的数据不是数字。你期望得到的图是什么样的?如果我的数据中有10种类型的唯一名称,比如A,B,C,D,E,F,G,H,i,J,我想在数据中显示A-10次,在数据中显示B-20次。。。简而言之,频率plt.xticks(range(len(counts)),counts.index)在这里做什么?去掉它,您就会看到区别了。它在xaxis上命名记号来读取你的类别名称。你能看看我共享的条形图吗?这是所需的图形类型。既然你说“plt.plot绘制数值数据”,我可以用什么方法来显示我共享的数据?现在我迷路了。如果您已经有了生成所需图形(条形图)的代码,那么问题的目的是什么?问题是:我正在使用.plot(kind=)方法,该方法仅适用于显示我共享的图形的kind='bar',但当我使用matplotlib方法时,它开始给我带来错误,例如:ValueError:无法将字符串转换为float:'交通信号条件'。python中还有其他好的方法来显示这样的数据吗?