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()