def _plot(self, ax, F): # equal axis length and no ticks equal_axis(ax) no_ticks(ax) V = get_circle_points(len(F)) # sections to plot sections = np.linspace(0, 2 * np.pi, self.n_dim + 1) t = [(sections[i] + sections[i + 1]) / 2 for i in range(len(sections) - 1)] endpoints = np.column_stack([np.cos(t), np.sin(t)]) plot_axis_labels(ax, endpoints, self.get_labels(), **self.axis_label_style) center = np.zeros(2) for i in range(len(sections) - 1): t = np.linspace(sections[i], sections[i + 1], 100) v = np.column_stack([np.cos(t), np.sin(t)]) P = np.row_stack([center, F[i] * v]) plot_polygon(ax, P, color=self.colors[i]) # draw the outer circle plot_circle(ax, **self.axis_style) plot_axes_lines(ax, V, **self.axis_style)
def _plot(self, ax, _F, inner, outer, kwargs): set_if_none_from_tuples(kwargs, ("alpha", 0.5)) # equal axis length and no ticks equal_axis(ax) no_ticks(ax) # draw the axis lines and labels plot_axes_lines(ax, outer, extend_factor=1.0, **self.axis_style) plot_axis_labels(ax, outer, self.get_labels(), margin=0.015, **self.axis_label_style) # plot the outer radar line and the inner polygon plot_radar_line(ax, outer, **self.axis_style) plot_polygon(ax, inner) # find the corresponding point _F = inner + _F[:, None] * (outer - inner) # plot the points and no polygon ax.scatter(_F[:, 0], _F[:, 1], **self.point_style) plot_polygon(ax, _F, **kwargs)