Trying to make compelling plot for classification results with python I've been working on a classification problem and have some good results, but now I struggle with trying to put together a good plot to illustrate the probabilities for each prediction.  Here is my current data:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

df_voting_output.head(n=5)
    prob    actual  pred    correct
0   0.460200    0   0   1
1   0.548478    1   1   1
2   0.270609    0   0   1
3   0.686557    0   1   0
4   0.527935    0   1   0
5   0.098687    0   0   1

I've been able to create a bar chart with probabilites using this code:
plt.bar(np.arange(len(voting_predictions[:,1])), voting_predictions[:,1])
plt.xlabel(&quot;record number&quot;)
plt.ylabel(&quot;probability&quot;)
plt.title(&quot;Classification Probabilities&quot;)
plt.show()


However, I'm thinking there has to be a better way to include more information and a key.  I'd like the &quot;correct&quot; labels to be clear to see, so from a visual standpoint you can see how the probabilities relate to a correct classification.
It's really rare that you'd show a plot of the probabilities for each example in your set. Are you sure you want to do this? A better presentation might be a confusion matrix. Here's how it works:

1) The columns are the true class labels

2) The rows are the predicted classes

3) Along the right hand side of the plot you can show the probability of correctly assigning to a class (or the classification error, if you prefer).

For example, say I have three classes in my dataset. 
I have 10 examples of each class, so 30 examples total.

My classification results from my model are:

8 of the 10 examples in class 1 were correctly labelled; 1 was misclassified to class 2 and 1 was misclassified to class 3.

7 of the 10 examples in class 2 were correctly labelled; 3 were misclassified to class 3.

9 of the 10 examples in class 3 were correctly labelled; 1 was misclassified to class 2.

Then my confusion matrix looks like this:

$\begin{bmatrix} 0.8 &amp; 0.1 &amp; 0.1 \\ 0.0 &amp; 0.7 &amp; 0.3 \\ 0.0 &amp; 0.1 &amp; 0.9 \end{bmatrix}$

And along the right hand side of my confusion matrix I can include the classification error: 0.2 for class 1; 0.3 for class 2; 0.1 for class 3.

Notice the rows must add to 1.