Today I tried using for the first time the matplotlib library for drawing a few concentric circles, though it proved to be a bit more challenging than expected, as the circles were distorted given the scale differences between x and y axis. Because of this the circles displayed via the Circle class (in blue) seem to be displayed as ellipses. To show the difference I used trigonometric functions to draw the circles (in green) by applying a 5/7.5 multiplication factor for the x axis:
And here's the code:
import numpy as np import math as m import matplotlib.pyplot as plt axis_dimensions = [-100,100, -100,100] #dimensions axis dx=10 #distance between ticks on x axis dy=10 #distance between ticks on y axis sfx = 5/7.5 #scale factor for x axis r= 50 #radius #drawing the grid plt.axis(axis_dimensions) plt.axis('on') plt.grid(True, color='gray') plt.xticks(np.arange(axis_dimensions[0], axis_dimensions[1], dx)) plt.yticks(np.arange(axis_dimensions[2], axis_dimensions[3], dy)) #adding labels plt.title('Circles') plt.xlabel('x axis') plt.ylabel('y axis') #drawing the geometric figures for i in range(0,51,10): for angle in np.arange(m.radians(0),m.radians(360),m.radians(2)): #drawing circles via trigonometric functions x = (r+i)*m.cos(angle)*sfx y = (r+i)*m.sin(angle) plt.scatter(x,y,s=2,color ='g') #drawing with circles circle = plt.Circle((0,0),r+i,color='b', fill=False) plt.gca().add_patch(circle) plt.show()
Happy coding!
No comments:
Post a Comment