Python图表中的百分比格式

2024-04-28 10:33:35 发布

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

在第二个数字I.33%和第二个数字I.0%执行Im.3%。我尝试过很多不同的版本,在数组上的lambda函数中使用{percent,.2%}.format(),但是我没有完全理解。所有输入均已确认!在

import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn import datasets

%matplotlib inline

iris = datasets.load_iris()
x = iris['data']
y = iris['target']

x = iris_x[:, :2]

clf_tree = DecisionTreeClassifier(random_state = 1)
fit_clf = clf_tree.fit(x, y)

y_pred_proba = fit_clf.predict_proba(x)
y_pred = fit_clf.predict(x)

conf_mat = confusion_matrix(y_true = y, y_pred = y_pred)

fig, ax = plt.subplots(figsize = (15, 9))
ax.matshow(conf_mat, cmap = plt.cm.Blues, alpha = 0.3)

for i in range(conf_mat.shape[0]):
    for j in range(conf_mat.shape[1]):
        ax.text(x = j, y = i,
               s = conf_mat[i, j],
               va = 'center',
                ha = 'center')

plt.xlabel('Predicted')
plt.ylabel('Actual')
plt.show()


conf_mat_prc = conf_mat/len(y)

fig, ax = plt.subplots(figsize = (15, 9))
ax.matshow(conf_mat_prc, cmap = plt.cm.Blues, alpha = 0.3)


for i in range(conf_mat_prc.shape[0]):
    for j in range(conf_mat_prc.shape[1]):
        ax.text(x = j, y = i,
               s = conf_mat_prc[i, j],
               va = 'center',
                ha = 'center')

plt.xlabel('Predicted % dist')
plt.ylabel('Actual % dist')
plt.show()

提前谢谢你

——斯威帕布


Tags: inimportirisforconfrangepltax
1条回答
网友
1楼 · 发布于 2024-04-28 10:33:35

代码中(至少)有两个问题:

  • line 14中,iris_x是什么?我想你是说x[:, :2]而不是{}

  • 应将conf_mat_prc定义为conf_mat_prc = conf_mat/float(len(y)),而不是{},以获得float而不是0(int)。

最后,对于第二个图(第48行),使用str(round(conf_mat_prc[i, j]*100,precision)) + "%",其中precision定义浮点数字的数量。在

新代码如下:

import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn import datasets
from sklearn.metrics import confusion_matrix

# %matplotlib inline

iris = datasets.load_iris()
x = iris['data']
y = iris['target']

x = x[:, :2]

clf_tree = DecisionTreeClassifier(random_state = 1)
fit_clf = clf_tree.fit(x, y)

y_pred_proba = fit_clf.predict_proba(x)
y_pred = fit_clf.predict(x)

conf_mat = confusion_matrix(y_true = y, y_pred = y_pred)

fig, ax = plt.subplots(figsize = (15, 9))
ax.matshow(conf_mat, cmap = plt.cm.Blues, alpha = 0.3)

for i in range(conf_mat.shape[0]):
    for j in range(conf_mat.shape[1]):
        ax.text(x = j, y = i,
               s = conf_mat[i, j],
               va = 'center',
                ha = 'center')

plt.xlabel('Predicted')
plt.ylabel('Actual')
plt.show()



conf_mat_prc = conf_mat/float(len(y))

fig, ax = plt.subplots(figsize = (15, 9))
ax.matshow(conf_mat_prc, cmap = plt.cm.Blues, alpha = 0.3)


precision = 2
for i in range(conf_mat_prc.shape[0]):
    for j in range(conf_mat_prc.shape[1]):
        ax.text(x = j, y = i,
               s = str(round(conf_mat_prc[i, j]*100,precision)) + "%",
               va = 'center',
                ha = 'center')

plt.xlabel('Predicted % dist')
plt.ylabel('Actual % dist')
plt.show()

这是新的第二张图:

enter image description here

相关问题 更多 >