Python > Scatter Plots

Example: Scatter

import matplotlib.pyplot as plt
import numpy as np

def lim(data, gap):
    low  = min(data)
    high = max(data)
    span = high - low

    return low - span*gap/2, high + span*gap/2

colors = [ '#dd6600', '#44cc00', '#0088dd' ]

data = np.loadtxt('iris.dat')

X = data[:, 0]
Y = data[:, 1]
C = data[:, 4]

for i, c in enumerate(colors):
    ind = C == (i+1)
    plt.scatter(X[ind], Y[ind], c=c, s=80)

plt.xlim(lim(X, 0.07))
plt.ylim(lim(Y, 0.10))
plt.show()

Example: Scatter with Marginal Distributions

import numpy as np
import matplotlib.pyplot as plt

data = np.loadtxt('iris.dat')

colors = 'rgb'
aligns = ['left', 'mid', 'right']


def lim(data):
    low = np.min(data)
    high = np.max(data)
    range = high - low

    return low-range*0.1, high+range*0.1


xlim = lim(data[:,0])
ylim = lim(data[:,1])


plt.subplot(224)

for i in range(3):
    ind = data[:,-1] == i+1
    plt.scatter(data[ind, 0], data[ind, 1], s=80, color=colors[i])

plt.xlim(xlim)
plt.ylim(ylim)


plt.subplot(222)

A = data[data[:,-1] == 1]
B = data[data[:,-1] == 2]
C = data[data[:,-1] == 3]

plt.hist([A[:,0], B[:,0], C[:,0]], bins=30, color=colors, stacked=True)
plt.xlim(xlim)


plt.subplot(223)

plt.hist([A[:,1], B[:,1], C[:,1]], bins=20, orientation='horizontal', color=colors, stacked=True)

low, high = plt.xlim()
plt.xlim(high, low) # reverse

plt.ylim(ylim)


plt.tight_layout()
plt.show()