Altered plot styles.
Lines seemed to thick to see what is happening when they are close to each other. Changed line width to 2.
This commit is contained in:
parent
51c9a8283e
commit
5f593639d8
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -34,7 +34,7 @@
|
||||
"ytick.minor.size": 0,
|
||||
"axes.linewidth": 3.0,
|
||||
"font.size":14.0,
|
||||
"lines.linewidth": 4,
|
||||
"lines.linewidth": 3,
|
||||
"lines.solid_capstyle": "butt",
|
||||
"savefig.edgecolor": "#f0f0f0",
|
||||
"savefig.facecolor": "#f0f0f0",
|
||||
|
@ -19,8 +19,8 @@ def plot_errorbars(bars, xlims):
|
||||
show_legend()
|
||||
plt.gca().axes.yaxis.set_ticks([])
|
||||
plt.show()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def show_legend():
|
||||
@ -39,7 +39,7 @@ def bar_plot(pos, ylim=(0,1), title=None):
|
||||
plt.title(title)
|
||||
|
||||
|
||||
def plot_measurements(xs, ys=None, c='r', lw=2, label='Measurements', **kwargs):
|
||||
def plot_measurements(xs, ys=None, color='r', lw=2, label='Measurements', **kwargs):
|
||||
""" Helper function to give a consistant way to display
|
||||
measurements in the book.
|
||||
"""
|
||||
@ -57,47 +57,47 @@ def plot_measurements(xs, ys=None, c='r', lw=2, label='Measurements', **kwargs):
|
||||
plt.plot(range(len(xs)), xs, lw=1, c=c, alpha=alpha)'''
|
||||
|
||||
if ys is not None:
|
||||
plt.plot(xs, ys, c=c, lw=lw, linestyle='--', label=label, **kwargs)
|
||||
plt.plot(xs, ys, color=color, lw=lw, ls='--', label=label, **kwargs)
|
||||
else:
|
||||
plt.plot(xs, c=c, lw=lw, linestyle='--', label=label, **kwargs)
|
||||
plt.plot(xs, color=color, lw=lw, ls='--', label=label, **kwargs)
|
||||
|
||||
|
||||
|
||||
def plot_residual_limits(Ps):
|
||||
std = np.sqrt(Ps)
|
||||
|
||||
plt.plot(-std, c='k', ls=':', lw=2)
|
||||
plt.plot(std, c='k', ls=':', lw=2)
|
||||
plt.plot(-std, color='k', ls=':', lw=2)
|
||||
plt.plot(std, color='k', ls=':', lw=2)
|
||||
plt.fill_between(range(len(std)), -std, std,
|
||||
facecolor='#ffff00', alpha=0.3)
|
||||
|
||||
|
||||
def plot_track(xs, ys=None, label='Track', c='k', lw=2, **kwargs):
|
||||
if ys is not None:
|
||||
plt.plot(xs, ys, c=c, lw=lw, label=label, **kwargs)
|
||||
plt.plot(xs, ys, color=c, lw=lw, ls=':', label=label, **kwargs)
|
||||
else:
|
||||
plt.plot(xs, c=c, lw=lw, label=label, **kwargs)
|
||||
plt.plot(xs, color=c, lw=lw, ls=':', label=label, **kwargs)
|
||||
|
||||
|
||||
#c='#013afe'
|
||||
def plot_filter(xs, ys=None, c='#6d904f', label='Filter', vars=None, **kwargs):
|
||||
def plot_filter(xs, ys=None, c='#013afe', label='Filter', vars=None, **kwargs):
|
||||
#def plot_filter(xs, ys=None, c='#6d904f', label='Filter', vars=None, **kwargs):
|
||||
|
||||
if ys is None:
|
||||
ys = xs
|
||||
xs = range(len(ys))
|
||||
|
||||
plt.plot(xs, ys, c=c, label=label, **kwargs)
|
||||
|
||||
plt.plot(xs, ys, color=c, label=label, **kwargs)
|
||||
|
||||
if vars is None:
|
||||
return
|
||||
vars = np.asarray(vars)
|
||||
|
||||
|
||||
std = np.sqrt(vars)
|
||||
std_top = ys+std
|
||||
std_btm = ys-std
|
||||
|
||||
plt.plot(xs, ys+std, linestyle=':', c='k', lw=2)
|
||||
plt.plot(xs, ys-std, linestyle=':', c='k', lw=2)
|
||||
plt.plot(xs, ys+std, linestyle=':', color='k', lw=2)
|
||||
plt.plot(xs, ys-std, linestyle=':', color='k', lw=2)
|
||||
plt.fill_between(xs, std_btm, std_top,
|
||||
facecolor='yellow', alpha=0.2)
|
||||
|
||||
|
@ -370,12 +370,12 @@ def plot_track(ps, zs, cov,
|
||||
std_top = actual+std
|
||||
std_btm = actual-std
|
||||
|
||||
bp.plot_track(actual)
|
||||
bp.plot_track(actual,c='k')
|
||||
bp.plot_measurements(range(1, count + 1), zs)
|
||||
bp.plot_filter(range(1, count + 1), ps)
|
||||
|
||||
plt.plot(std_top, linestyle=':', color='k', lw=2)
|
||||
plt.plot(std_btm, linestyle=':', color='k', lw=2)
|
||||
plt.plot(std_top, linestyle=':', color='k', lw=1, alpha=0.4)
|
||||
plt.plot(std_btm, linestyle=':', color='k', lw=1, alpha=0.4)
|
||||
plt.fill_between(range(len(std_top)), std_top, std_btm,
|
||||
facecolor='yellow', alpha=0.2, interpolate=True)
|
||||
plt.legend(loc=4)
|
||||
@ -404,13 +404,9 @@ def plot_covariance(P, index=(0, 0)):
|
||||
plt.plot(ps)
|
||||
|
||||
|
||||
def test_fill():
|
||||
plt.fill_between([0,1,2,3,4], [1,1,1,1,1], [4,4,4,4,4])
|
||||
plt.plot([0,6], [6,1])
|
||||
# plt.ylim(2,5)
|
||||
plt.show()
|
||||
|
||||
if __name__ == "__main__":
|
||||
pass
|
||||
#show_position_chart()
|
||||
#plot_3d_covariance((2,7), np.array([[8.,0],[0,4.]]))
|
||||
#plot_3d_sampled_covariance([2,7], [[8.,0],[0,4.]])
|
||||
@ -418,5 +414,4 @@ if __name__ == "__main__":
|
||||
|
||||
#show_position_chart()
|
||||
#show_x_error_chart(4)
|
||||
test_fill()
|
||||
|
||||
|
@ -197,11 +197,77 @@ def test_plot():
|
||||
|
||||
|
||||
|
||||
def plot_bivariate_colormap(xs, ys):
|
||||
xs = np.asarray(xs)
|
||||
ys = np.asarray(ys)
|
||||
xmin = xs.min()
|
||||
xmax = xs.max()
|
||||
ymin = ys.min()
|
||||
ymax = ys.max()
|
||||
values = np.vstack([xs, ys])
|
||||
kernel = scipy.stats.gaussian_kde(values)
|
||||
X, Y = np.mgrid[xmin:xmax:100j, ymin:ymax:100j]
|
||||
positions = np.vstack([X.ravel(), Y.ravel()])
|
||||
|
||||
Z = np.reshape(kernel.evaluate(positions).T, X.shape)
|
||||
plt.gca().imshow(np.rot90(Z), cmap=plt.cm.Greys,
|
||||
extent=[xmin, xmax, ymin, ymax])
|
||||
|
||||
|
||||
|
||||
def plot_monte_carlo_mean(xs, ys, f, mean_fx, label):
|
||||
fxs, fys = f(xs, ys)
|
||||
|
||||
computed_mean_x = np.average(fxs)
|
||||
computed_mean_y = np.average(fys)
|
||||
|
||||
plt.subplot(121)
|
||||
plt.gca().grid(b=False)
|
||||
|
||||
plot_bivariate_colormap(xs, ys)
|
||||
plt.scatter(xs, ys, marker='.', alpha=0.02, color='k')
|
||||
plt.xlim(-20, 20)
|
||||
plt.ylim(-20, 20)
|
||||
|
||||
plt.subplot(122)
|
||||
plt.gca().grid(b=False)
|
||||
|
||||
plt.scatter(fxs, fys, marker='.', alpha=0.02, color='k')
|
||||
plt.scatter(mean_fx[0], mean_fx[1],
|
||||
marker='v', s=300, c='r', label='Linearized Mean')
|
||||
plt.scatter(computed_mean_x, computed_mean_y,
|
||||
marker='*',s=120, c='r', label='Computed Mean')
|
||||
plot_bivariate_colormap(fxs, fys)
|
||||
plt.ylim([-10, 200])
|
||||
plt.xlim([-100, 100])
|
||||
plt.legend(loc='best', scatterpoints=1)
|
||||
print ('Difference in mean x={:.3f}, y={:.3f}'.format(
|
||||
computed_mean_x-mean_fx[0], computed_mean_y-mean_fx[1]))
|
||||
|
||||
|
||||
|
||||
def plot_cov_ellipse_colormap(cov=[[1,1],[1,1]]):
|
||||
side = np.linspace(-3,3,24)
|
||||
X,Y = np.meshgrid(side,side)
|
||||
|
||||
pos = np.empty(X.shape + (2,))
|
||||
pos[:, :, 0] = X;
|
||||
pos[:, :, 1] = Y
|
||||
plt.axes(xticks=[], yticks=[], frameon=True)
|
||||
rv = scipy.stats.multivariate_normal((0,0), cov)
|
||||
plt.gca().grid(b=False)
|
||||
plt.gca().imshow(rv.pdf(pos), cmap=plt.cm.Greys, origin='lower')
|
||||
plt.show()
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
plot_cov_ellipse_colormap(cov=[[2, 1.2], [1.2, 2]])
|
||||
'''
|
||||
from numpy.random import normal
|
||||
import numpy as np
|
||||
|
||||
plot_ukf_vs_mc()
|
||||
plot_ukf_vs_mc()'''
|
||||
|
||||
'''x0 = (1, 1)
|
||||
data = normal(loc=x0[0], scale=x0[1], size=500000)
|
||||
|
@ -151,7 +151,11 @@ if __name__ == '__main__':
|
||||
mu0 = np.array([0., 0.])
|
||||
plot(pf, weights=False)
|
||||
|
||||
for x in range(10):
|
||||
fig = plt.gcf()
|
||||
fig.show()
|
||||
fig.canvas.draw()
|
||||
|
||||
for x in range(50):
|
||||
|
||||
z[0] += 1.0 + randn()*0.3
|
||||
z[1] += 1.0 + randn()*0.3
|
||||
@ -169,12 +173,11 @@ if __name__ == '__main__':
|
||||
#print(var)
|
||||
|
||||
plot(pf, weights=False)
|
||||
plt.scatter(z[0], z[1], c='r', s=40)
|
||||
|
||||
plt.plot(z[0], z[1], marker='v', c='r', ms=10)
|
||||
plt.scatter(mu[0], mu[1], c='g', s=100)#,
|
||||
#s=min(500, abs((1./np.sum(var)))*20), alpha=0.5)
|
||||
plt.tight_layout()
|
||||
plt.pause(.22)
|
||||
fig.canvas.draw()
|
||||
|
||||
#pf.assign_speed_by_gaussian(1, 1.5)
|
||||
#pf.move(h=[1,1], v=1.4, t=1)
|
||||
|
Loading…
Reference in New Issue
Block a user