def get_3d_data(data, field_x, field_y, field_z): x_set, z_av_tab, z_std_tab, y_set = analysis.get_graph_data( data, field_x, field_y, field_z) x = [] y = [] z = [] for i, xs in enumerate(x_set): for j, ys in enumerate(y_set): x.append(xs) y.append(ys) z.append(z_av_tab[i, j]) return x, y, z
def plot(ax, data, field_x, field_y, field_z): data = analysis.get_graph_data(data, field_x, field_y, field_z) for j in range(len(data[3])): ax.plot(data[0], data[1][:, j], linestyle=analysis.get_lines(j), linewidth=2, color=analysis.get_cols(j), label=str(field_z).replace("_", " ") + " = " + str(data[3][j])) ax.fill_between(data[0], data[1][:, j] - data[2][:, j] / 5.0, data[1][:, j] + data[2][:, j] / 5.0, alpha=0.1, edgecolor=analysis.get_cols(j), facecolor=analysis.get_cols(j)) ax.set_title(str(field_y))
def scatter_x_y(ax, data, field_x, field_y, field_z): x_set, z_av_tab, z_std_tab, y_set = analysis.get_graph_data( data, field_x, field_y, field_z) print x_set, y_set if "grf_max" in field_y: im = ax.pcolormesh(x_set, y_set, z_av_tab.T, norm=cols.LogNorm(vmin=max(0.0001, np.nanmin(z_av_tab)), vmax=np.nanmax(z_av_tab))) else: im = ax.pcolormesh(x_set, y_set, z_av_tab.T) # x, y, z = get_3d_data(data, field_x, field_y, field_z) # logx = np.log10(x) # logy = np.log10(y) # logz = np.log10(z) # f = interp2d(logx, logy, logz, kind="linear") # xi = np.linspace(min(logx), max(logx), 100) # yi = np.linspace(min(logy), max(logy), 100) # zi = np.power(10, f(xi, yi)) # xi = np.power(10, xi) # yi = np.power(10, yi) # im = ax.pcolormesh(xi, yi, zi) ks = np.logspace(np.log10(min(x_set)), np.log10(max(x_set)), 100) for j, kappa in enumerate( [0.000001, 0.00001, 0.0001, 0.001, 0.01, 0.1, 1, 10, 100, 1000, 10000]): ax.plot(ks, kappa * np.sqrt(ks), linestyle="--", linewidth=1, color="k", label="Kappa = " + str(kappa)) ax.set_yscale('log') ax.set_xscale('log') ax.set_xlim([min(x_set), max(x_set)]) ax.set_ylim([min(y_set), max(y_set)]) ax.set_xlabel('Stiffness [N.m/rad]') ax.set_ylabel('Damping [N.m.s/rad]') ax.set_title(field_y.replace("_", " ").capitalize()) return im
def get_fall_data(data, field_x, field_y, field_z): data = analysis.get_graph_data(data, field_x, field_y, field_z) fall_x = [] fall_y = [] not_fall_x = [] not_fall_y = [] for i, x in enumerate(data[0]): for j, y in enumerate(data[3]): if data[1][i, j] > 0.2: fall_x.append(x) fall_y.append(y) else: not_fall_x.append(x) not_fall_y.append(y) return fall_x, fall_y, not_fall_x, not_fall_y
def get_data(data, field): x_set, z_av_tab, z_std_tab, y_set = analysis.get_graph_data( data, 'force_delay_line_n', field, 'force_elm_n') x = [] y = [] z_av = [] z_std = [] for i, xs in enumerate(x_set): for j, ys in enumerate(y_set): x.append(xs) y.append(ys) if 'x_speed' in field: z_av_tab[i, j] = 1 - abs(0.25 - z_av_tab[i, j]) / 0.25 if z_av_tab[i, j] < 0: z_av_tab[i, j] = 0 if 'y_speed' in field: z_av_tab[i, j] = abs(z_av_tab[i, j]) z_av.append(z_av_tab[i, j]) z_std.append(z_std_tab[i, j]) return x, y, z_av, z_std