gpt4 book ai didi

python - 使用 matplotlib 绘制 Char 数据的 Pandas DataFrame

转载 作者:太空宇宙 更新时间:2023-11-03 14:21:49 31 4
gpt4 key购买 nike

数据集中的数据纯粹由字符组成。例如:

p,x,s,n,t,p,f,c,n,k,e,e,s,s,w,w,p,w,o,p,k,s,u
e,x,s,y,t,a,f,c,b,k,e,c,s,s,w,w,p,w,o,p,n,n,g
e,b,s,w,t,l,f,c,b,n,e,c,s,s,w,w,p,w,o,p,n,n,m
p,x,y,w,t,p,f,c,n,n,e,e,s,s,w,w,p,w,o,p,k,s,u
e,x,s,g,f,n,f,w,b,k,t,e,s,s,w,w,p,w,o,e,n,a,g

数据的完整副本可以在 agaricus-lepiota.data in the uci machine learning datasets mushroom dataset 中找到。

是否有通过 matplotlib 使用字符数据的可视化方法(而不必将数据集转换为数字)?

仅适用于任何类型的可视化,即:

filename = 'mushrooms.csv'
df_mushrooms = pd.read_csv(filename, names = ["Classes", "Cap-Shape", "Cap-Surface", "Cap-Colour", "Bruises", "Odor", "Gill-Attachment", "Gill-Spacing", "Gill-Size", "Gill-Colour", "Stalk-Shape", "Stalk-Root", "Stalk-Surface-Above-Ring", "Stalk-Surface-Below-Ring", "Stalk-Colour-Above-Ring", "Stalk-Colour-Below-Ring", "Veil-Type", "Veil-Colour", "Ring-Number", "Ring-Type", "Spore-Print-Colour", "Population", "Habitat"])


#If there are any entires (rows) with any missing values/NaN's drop the row.
df_mushrooms.dropna(axis = 0, how = 'any', inplace = True)

df_mushrooms.plot.scatter(x = 'Classes', y = 'Cap-Shape')

最佳答案

这是可以做到的,但是从图形的角度来看,这种方法实际上没有任何意义。如果你按照你的要求去做,它会是这样的:

enter image description here

我知道我不应该涉足告诉别人如何展示他们的图表的领域,但这并没有向我传达任何信息。问题是,为 xy 索引使用 ClassesCap-Shape 字段将始终给出相同的结果信在同一个地方。没有变化。也许还有一些其他字段可以用作索引,然后使用 Cap-Shape 作为标记,但实际上这不会增加任何值。这又是对我个人来说的。

要使用字符串作为标记,您可以使用matplotlib.markers中描述的“$...$”标记。 ,但我必须再次警告,这样的绘图比传统方法慢得多,因为您必须迭代数据帧的行。

fig, ax = plt.subplots()
# Classes only has 'p' and 'e' as unique values so we will map them as 1 and 2 on the index
df['Class_Id'] = df.Classes.map(lambda x: 1 if x == 'p' else 2)
df['Cap_Val'] = df['Cap-Shape'].map(lambda x: ord(x) - 96)
for idx, row in df.iterrows():
ax.scatter(x=row.Class_Id, y=row.Cap_Val, marker=r"$ {} $".format(row['Cap-Shape']), c=plt.cm.nipy_spectral(row.Cap_Val / 26))
ax.set_xticks([0,1,2,3])
ax.set_xticklabels(['', 'p', 'e', ''])
ax.set_yticklabels(['', 'e', 'j', 'o', 't', 'y'])
fig.show()

关于python - 使用 matplotlib 绘制 Char 数据的 Pandas DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47892142/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com