Python 使用matplotlib打印浮点列表

Python 使用matplotlib打印浮点列表,python,matplotlib,Python,Matplotlib,我列出了不同模型的平均绝对误差和分类精度 print(MAE_linear) print(MAE_1vR) print(MAE_multi) print(MAE_ordinal) print(acc_linear) print(acc_1vR) print(acc_multi) print(acc_ordinal) 我想从这些浮动列表中创建比较箱线图: [0.4937882 0.50900745 0.49471506 0.5159206 0.6519391 ] [1.0031989 0.

我列出了不同模型的平均绝对误差和分类精度

print(MAE_linear)
print(MAE_1vR)
print(MAE_multi)
print(MAE_ordinal)
print(acc_linear)
print(acc_1vR)
print(acc_multi)
print(acc_ordinal)
我想从这些浮动列表中创建比较箱线图:

[0.4937882  0.50900745 0.49471506 0.5159206  0.6519391 ]
[1.0031989  0.45563284 0.4681502  0.67197496 0.68400556]
[1.1409596  1.106676   0.4766342  0.86363006 0.6922114 ]
[0.28936023 0.4942281  0.25841448 0.4128651  0.76453406]
[0.58038944 0.5312239  0.50368565 0.581363   0.35688457]
[0.2623783  0.5684979  0.5581363  0.34116828 0.3705146 ]
[0.19394994 0.24297635 0.55445063 0.24534075 0.3664812 ]
[0.71265644 0.5223922  0.74165505 0.59805286 0.35688457]

%matplotlib inline
#import seaborn as sns
#import matplotlib.pyplot as plt

fig, axs = plt.subplots(ncols=2, figsize=[10, 6])
fig.suptitle('Ordinal regression predicts NBR\n\n',
            color='dimgrey',
             size=22)

axs[0] = nuss_style_fun(ax=axs[0], title='\n\nMagnitude prediction')

sns.boxplot(y=['Linear Regression', 'Logistic Regression\n(one versus rest)', 'Logistic regression\n(multinomial)', 'Ordered logistic regression'],
            x=[MAE_linear, MAE_1vR, MAE_multi, MAE_ordinal], ax=axs[0])
axs[0].set(xlabel='Mean absolute error (lower is better)',
      ylabel=' ')

axs[1] = nuss_style_fun(ax=axs[1], title='\n\nCategory prediction')

sns.boxplot(y=['Linear Regression', 'Logistic Regression\n(one versus rest)', 'Logistic regression\n(multinomial)', 'Ordered logistic regression'],
            x=[acc_linear, acc_1vR, acc_multi, acc_ordinal], ax=axs[1])
axs[1].set(xlabel='Classification accuracy (higher is better)',
      ylabel=' ',
      xlim=[0, 1])
axs[1].get_yaxis().set_ticks([])

#author line
fig.text(0.99, 0.01, '@rikunert', color='grey', style='italic',
         horizontalalignment='right')

fig.tight_layout()
但它给出了以下错误:

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

如果有人能帮助我理解并解决这个问题,我将不胜感激。

您可以创建一个临时数据框以获得广泛形式的输入。对于这种宽格式数据,
orient='h'
创建水平箱线图

导入seaborn作为sns
将matplotlib.pyplot作为plt导入
作为pd进口熊猫
平均线性=[0.4937882,0.50900745,0.49471506,0.5159206,0.6519391]
MAE_1vR=[1.0031989,0.45563284,0.4681502,0.67197496,0.68400556]
MAE_multi=[1.1409596,1.106676,0.4766342,0.86363006,0.6922114]
MAE_序数=[0.28936023,0.4942281,0.25841448,0.4128651,0.76453406]
acc_线性=[0.58038944,0.5312239,0.50368565,0.581363,0.35688457]
acc_1vR=[0.2623783,0.5684979,0.5581363,0.34116828,0.3705146]
acc_multi=[0.19394994,0.24297635,0.55445063,0.24534075,0.3664812]
acc_序数=[0.71265644,0.5223922,0.74165505,0.59805286,0.35688457]
图,axs=plt.子批次(ncols=2,figsize=[10,6],sharey=True)
图suptitle('顺序回归预测NBR',颜色='dimgrey')
箱线图(data=pd.DataFrame({'Linear Regression':MAE_Linear,
“逻辑回归\n(一对多)”:MAE_1vR,
“逻辑回归\n(多项式)”:MAE_multi,
“有序逻辑回归”:MAE_序数}),
orient='h',
ax=axs[0])
axs[0]。设置标题(“震级预测”)
axs[0]。设置标签(“平均绝对误差(越低越好)”)
axs[0]。设置标签(“”)
axs[0]。勾选参数(轴=y',长度=0)#隐藏勾选标记
箱线图(data=pd.DataFrame({'Linear Regression'):acc_Linear,
“逻辑回归\n(一对一)”:acc_1vR,
“逻辑回归\n(多项式)”:acc_multi,
“有序逻辑回归”:acc_ordinal}),
orient='h',
ax=axs[1])
axs[1]。设置标题('\n\n类别预测')
axs[1]。设置标签(“分类精度(越高越好)”)
axs[1]。设置标签(“”)
axs[1]。设置\u xlim(0,1)
axs[1]。勾选参数(轴=y',长度=0)
图1紧_布局图()
plt.show()

每个图形中指定的Y轴值都是字符串列表,但如果要指定数据帧的列,是否需要数据帧名称?@r-初学者,谢谢您的回答
.dtype
显示列表是
float32
类型。重点是
df['Linear Regression']
应该这样指定。