<jupyter_start><jupyter_text>0.424264068712 9 180.583095189485 6 110.707106781187 3 120.707106781187 3 130.707106781187 12 190.761577310586 12 140.824621125124 2 140.824621125124 14 190.860232526704 10 111.0 3 191.0 6 101.0 12 131.11803398875 7 151.11803398875 18 201.1401754251 9 111.21655250606 9 101.3152946438 9 201.39283882772 1 111.41421356237 1 61.41421356237 2 191.41421356237 3 41.41421356237 4 81.41421356237 6 191.44222051019 3 141.56204993518 11 181.58113883008 2 121.58113883008 4 131.58113883008 7 171.58113883008 8 171.58113883008 10 181.58113883008 13 191.69705627485 6 91.72626765016 13 141.80277563773 15 161.80277563773 15 171.96977156036 6 141.98494332413 11 192.0 1 192.0 2 62.11896201004 11 202.12132034356 4 122.12132034356 6 122.12132034356 6 182.20907220344 1 92.2360679775 1 32.2360679775 1 42.2360679775 1 72.2360679775 1 102.2360679775 2 32.2360679775 2 102.2360679775 3 62.2360679775 4 192.2360679775 10 192.5 1 202.5 5 202.5 10 202.5179356624 2 112.54558441227 10 142.5495097568 1 122.5495097568 1 182.5495097568 2 132.5495097568 4 172.5495097568 16 172.5495097568 11 142.69072480941 11 122.69258240357 6 202.74590604355 3 112.80713376952 1 142.82842712475 3 82.82842712475 7 82.82842712475 7 162.84253408071 4 142.91547594742 1 132.91547594742 1 172.91547594742 6 132.91547594742 8 132.91547594742 10 123.0 1 83.0 4 63.04138126515 7 203.11126983722 9 193.16227766017 1 23.16227766017 3 103.16227766017 4 73.33766385366 4 113.35410196625 1 153.35410196625 8 153.39705755029 7 113.41760149813 2 93.44093010682 11 133.53553390593 5 183.53553390593 8 123.53553390593 18 193.60555127546 2 43.60555127546 5 73.60555127546 6 73.60555127546 8 193.60555127546 9 143.64005494464 5 153.67151195014 7 93.80525951809 5 93.80788655293 2 183.80788655293 3 173.80788655293 7 183.80788655293 10 133.80788655293 15 203.81837661841 9 123.88329756779 3 94.0 3 74.0 4 104.0 8 164.02243707222 14 184.03112887415 4 154.03112887415 19 204.12310562562 6 84.12310562562 7 194.12310562562 13 174.24264068712 7 104.24264068712 12 184.25205832509 8 144.29418211072 11 174.30116263352 3 184.30116263352 6 174.30116263352 17 194.32897216438 8 114.36806593357 4 94.472135955 1 54.472135955 12 174.4821869662 11 154.5 17 204.52769256907 7 124.52769256907 7 134.55411901469 5 114.58039299624 9 134.60977222865 2 204.60977222865 3 204.64004310325 9 154.66154480832 14 204.71699056603 4 204.71699056603 6 154.71699056603 12 204.71699056603 15 184.74341649025 4 184.87647413609 9 174.94772675074 7 145.0 1 165.0 2 85.0 5 105.0 5 165.0 13 185.02493781056 3 155.07740090991 14 175.09901951359 4 165.09901951359 5 65.09901951359 8 105.09901951359 17 185.14781507049 5 175.14781507049 10 175.2038447325 8 95.22015325446 8 205.22015325446 15 195.31507290637 10 155.31507290637 13 205.38516480713 2 75.5 13 155.52268050859 8 185.59016994375 12 155.59016994375 16 205.7008771255 2 176.0440052945 14 156.22414652784 11 166.32455532034 3 166.32455532034 5 196.40312423743 4 56.40312423743 5 86.40312423743 6 166.44049687524 9 166.5 2 156.5192024052 16 186.67083203206 13 166.7082039325 3 56.7082039325 16 196.96419413859 5 126.96419413859 12 167.03420215803 5 147.07106781187 2 57.07106781187 10 167.38241153012 5 137.51531769122 14 168.0622577483 2 16<jupyter_code>import numpy.random as rnd
NUM = 250

ells = [Ellipse(xy=rnd.rand(2)*10, width=rnd.rand(), height=rnd.rand(), angle=rnd.rand()*360)
        for i in range(NUM)]

fig = plt.figure(0)
ax = fig.add_subplot(111, aspect='equal')
for e in ells:
    ax.add_artist(e)
    e.set_clip_box(ax.bbox)
    e.set_alpha(rnd.rand())
    e.set_facecolor(rnd.rand(3))

ax.set_xlim(0, 10)
ax.set_ylim(0, 10)
print type(ax)
plt.show()
def EclispeInfo(p1indx,p2indx,increment=0.2,anglecoef=1):
    delta_x = points.X[p1indx]-points.X[p2indx]
    delta_y = points.Y[p1indx]-points.Y[p2indx]
    theta_radians = atan2(delta_y, delta_x)
    e = Ellipse(((points.X[p1indx]+points.X[p2indx])/2,(points.Y[p1indx]+points.Y[p2indx])/2),
            abs(delta_y)+increment,abs(delta_x)+increment,-2*anglecoef*degrees(theta_radians))
    e.set_clip_box(ax.bbox)
    e.set_alpha(0.4)
    e.set_facecolor(rnd.rand(3))
    return e

fig = plt.figure(0)
ax = fig.add_subplot(111, aspect='equal')

ax.plot(points.X, points.Y, 'ro')
ax.axis([min(points.X)-1, max(points.X)+1, min(points.Y)-1, max(points.Y)+1])
for i, txt in enumerate(points.index):
    ax.annotate(txt+1, (points.X[i],points.Y[i]))
ax.add_artist(EclispeInfo(17,8))
ax.add_artist(EclispeInfo(5,10))
ax.add_artist(EclispeInfo(2,11))
ax.add_artist(EclispeInfo(6,14))
ax.add_artist(EclispeInfo(17,19,1))
ax.add_artist(EclispeInfo(5,9,1))
ax.add_artist(EclispeInfo(2,12,1))
ax.add_artist(EclispeInfo(6,16,1))
ax.add_artist(EclispeInfo(8,9,3.5,0.5))
ax.add_artist(EclispeInfo(8,9,3.9))
ax.add_artist(EclispeInfo(12,18,0.8,2.6))
#And So On I stopped due unclearity of the plot after a while.
plt.show()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.10334284549531186, 'fraction_numerical': 0.5570729718711781, 'mean_word_length': 4.955097087378641, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '37059', 'license': 'MIT', 'n_tokens_mistral': 4057, 'n_tokens_neox': 2210, 'n_words': 476, 'path': 'HW11/.ipynb_checkpoints/Q2-checkpoint.ipynb', 'repo_name': 'aqeel13932/DM', 'size': '4906'}