[split] How does this code work?(Radar Chart) - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Data Science (https://python-forum.io/forum-44.html) +--- Thread: [split] How does this code work?(Radar Chart) (/thread-16591.html) |
[split] How does this code work?(Radar Chart) - tsmith - Mar-03-2019 Would anyone be able to explain this code, i understand a little, however, aspects in the creation of the chart confuse me # Plots a radar chart. from math import pi import matplotlib.pyplot as plt # Set data cat = ['Speed', 'Reliability', 'Comfort', 'Safety', 'Effieciency'] values = [90, 60, 65, 70, 40] N = len(cat) x_as = [n / float(N) * 2 * pi for n in range(N)] # Because our chart will be circular we need to append a copy of the first # value of each list at the end of each list with data values += values[:1] x_as += x_as[:1] # Set color of axes plt.rc('axes', linewidth=0.5, edgecolor="#888888") # Create polar plot ax = plt.subplot(111, polar=True) # Set clockwise rotation. That is: ax.set_theta_offset(pi / 2) ax.set_theta_direction(-1) # Set position of y-labels ax.set_rlabel_position(0) # Set color and linestyle of grid ax.xaxis.grid(True, color="#888888", linestyle='solid', linewidth=0.5) ax.yaxis.grid(True, color="#888888", linestyle='solid', linewidth=0.5) # Set number of radial axes and remove labels plt.xticks(x_as[:-1], []) # Set yticks plt.yticks([20, 40, 60, 80, 100], ["20", "40", "60", "80", "100"]) # Plot data ax.plot(x_as, values, linewidth=0, linestyle='solid', zorder=3) # Fill area ax.fill(x_as, values, 'b', alpha=0.3) # Set axes limits plt.ylim(0, 100) # Draw ytick labels to make sure they fit properly for i in range(N): angle_rad = i / float(N) * 2 * pi if angle_rad == 0: ha, distance_ax = "center", 10 elif 0 < angle_rad < pi: ha, distance_ax = "left", 1 elif angle_rad == pi: ha, distance_ax = "center", 1 else: ha, distance_ax = "right", 1 ax.text(angle_rad, 100 + distance_ax, cat[i], size=10, horizontalalignment=ha, verticalalignment="center") # Show polar plot plt.show() RE: [split] How does this code work?(Radar Chart) - heiner55 - May-26-2019 It is faster if you read the docs yourself. |