ValueError: Neither the `x` nor `y` variable appears to be numeric.

seaborn绘图时输入x,y值非实数,值可能为字符串,需要进行处理

解决:

  1. 绘图时记得去掉字符串类型比如名称的一列
  2. 将数字字符串转化为float类型

对于第二点:

foo = pd.DataFrame(columns =['Names','Values'])

pandas版本大于0.25
pandas.DataFrame.explode() 将列表列转为独立的单元格,能将值转换为实数而不是字符串

foo = foo.explode('Values')
foo['Values'] = foo['Values'].astype('float')
sns.violinplot(data=foo, x='Names', y='Values')

pandas版本小于0.25

result = foo.explode('Values').reset_index(drop=True)
result = result.assign(Names=result['Names'].astype('category'), 
                       Values=result['Values'].astype(np.float32))

sns_plot = sns.violinplot(x='Names', y='Values', data=result)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值