Draw Badminton Court Using Python Matplotlib Module

Draw Badminton Court Using Python Matplotlib Module

In this blog, we will draw badminton court using Python's matplotlib module.

In [1]:
import matplotlib.pyplot as plt

Draw canvas

In [2]:
plt.figure(figsize = (18, 7))

plt.xlim(1, 12)
plt.ylim(1, 12)
plt.show()

Draw clearance area

In [3]:
plt.figure(figsize = (18, 7))

#points for clearance area
plt.plot(1.5, 1.5, marker = 'o')
plt.plot(11.5, 1.5, marker = 'o')
plt.plot(11.5, 11.5, marker = 'o')
plt.plot(1.5, 11.5, marker = 'o')
plt.gca().annotate('Clearance', xy=(8, 11.8), xycoords='data', fontsize=12)


#draw line in clearance area
plt.plot([1.5, 11.5, 11.5, 1.5, 1.5], [1.5, 1.5, 11.5, 11.5, 1.5],linestyle = 'dashed')
plt.xlim(1, 12)
plt.ylim(1, 12)
plt.show()

Draw Doubles Sideline

In [4]:
plt.figure(figsize = (18, 7))

#points for clearance area
plt.plot(1.5, 1.5, marker = 'o')
plt.plot(11.5, 1.5, marker = 'o')
plt.plot(11.5, 11.5, marker = 'o')
plt.plot(1.5, 11.5, marker = 'o')
plt.gca().annotate('Clearance', xy=(8, 11.8), xycoords='data', fontsize=12)


#draw line in clearance area
plt.plot([1.5, 11.5, 11.5, 1.5, 1.5], [1.5, 1.5, 11.5, 11.5, 1.5],linestyle = 'dashed')

#draw points for doubles sideline
plt.plot(2, 2.5, marker = 'o')
plt.plot(11, 2.5, marker = 'o')
plt.plot(11, 10.5, marker = 'o')
plt.plot(2, 10.5, marker = 'o')

#draw line in doubles sideline area
plt.plot([2, 11, 11, 2, 2], [2.5, 2.5, 10.5, 10.5, 2.5],linestyle = 'solid', linewidth = 3)
plt.gca().annotate('Doubles Sideline', xy=(8, 10.8), xycoords='data', fontsize=12)
plt.gca().annotate('Baseline', xy=(11.2, 5.5), xycoords='data', fontsize=12, rotation=270)
plt.gca().annotate('<-2 inch->', xy=(2.7, 10.5), xycoords='data', fontsize=7, rotation=270)
plt.gca().annotate('<---------------------------------------------------------------- \
                   44 inch | 13.41 m \
                   ------------------------------------------------------------->', xy=(2, 1.2), xycoords='data', fontsize=12)
plt.gca().annotate('<------------------ 20 inch | 6.1 m ------------------->', xy=(11.7, 2.5), xycoords='data', fontsize=12, rotation=270)


plt.xlim(1, 12)
plt.ylim(1, 12)
plt.show()

Draw Singles Sidelines

In [11]:
plt.figure(figsize = (18, 7))

#points for clearance area
plt.plot(1.5, 1.5, marker = 'o')
plt.plot(11.5, 1.5, marker = 'o')
plt.plot(11.5, 11.5, marker = 'o')
plt.plot(1.5, 11.5, marker = 'o')
plt.gca().annotate('Clearance', xy=(8, 11.8), xycoords='data', fontsize=12)

#draw line in clearance area
plt.plot([1.5, 11.5, 11.5, 1.5, 1.5], [1.5, 1.5, 11.5, 11.5, 1.5],linestyle = 'dashed')

#draw points for doubles sideline
plt.plot(2, 2.5, marker = 'o')
plt.plot(11, 2.5, marker = 'o')
plt.plot(11, 10.5, marker = 'o')
plt.plot(2, 10.5, marker = 'o')

#draw line in doubles sideline area
plt.plot([2, 11, 11, 2, 2], [2.5, 2.5, 10.5, 10.5, 2.5],linestyle = 'solid', linewidth = 3)
plt.gca().annotate('Doubles Sideline', xy=(8, 10.8), xycoords='data', fontsize=12)
plt.gca().annotate('Baseline', xy=(11.2, 5.5), xycoords='data', fontsize=12, rotation=270)
plt.gca().annotate('<-2 inch->', xy=(2.7, 10.5), xycoords='data', fontsize=7, rotation=270)
plt.gca().annotate('<---------------------------------------------------------------- \
                   44 inch | 13.41 m \
                   ------------------------------------------------------------->', xy=(2, 1.2), xycoords='data', fontsize=12)
plt.gca().annotate('<------------------ 20 inch | 6.1 m ------------------->', xy=(11.7, 2.5), xycoords='data', fontsize=12, rotation=270)


#draw bottom points for singles sideline
plt.plot(2, 3.2, marker = 'o')
plt.plot(11, 3.2, marker = 'o')
plt.plot([2, 11], [3.2, 3.2])

#draw right points for singles sideline
plt.plot(10.5, 2.5, marker = 'o')
plt.plot(10.5, 10.5, marker = 'o')
plt.plot([10.5, 10.5], [2.5, 10.5])


#draw top points for singles sideline
plt.plot(2, 9.8, marker = 'o')
plt.plot(11, 9.8, marker = 'o')
plt.plot([2, 11], [9.8, 9.8])

#draw left points for singles sideline
plt.plot(2.5, 10.5, marker = 'o')
plt.plot(2.5, 2.5, marker = 'o')
plt.plot([2.5, 2.5], [10.5, 2.5])

plt.gca().annotate('Singles Sideline', xy=(8, 10), xycoords='data', fontsize=12)
plt.gca().annotate('<-1.5i->', xy=(2.6, 9.8), xycoords='data', fontsize=7, rotation=270)


plt.xlim(1, 12)
plt.ylim(1, 12)
plt.show()

Draw Net in the middle

In [6]:
plt.figure(figsize = (18, 7))

#points for clearance area
plt.plot(1.5, 1.5, marker = 'o')
plt.plot(11.5, 1.5, marker = 'o')
plt.plot(11.5, 11.5, marker = 'o')
plt.plot(1.5, 11.5, marker = 'o')
plt.gca().annotate('Clearance', xy=(8, 11.8), xycoords='data', fontsize=12)

#draw line in clearance area
plt.plot([1.5, 11.5, 11.5, 1.5, 1.5], [1.5, 1.5, 11.5, 11.5, 1.5],linestyle = 'dashed')

#draw points for doubles sideline
plt.plot(2, 2.5, marker = 'o')
plt.plot(11, 2.5, marker = 'o')
plt.plot(11, 10.5, marker = 'o')
plt.plot(2, 10.5, marker = 'o')

#draw line in doubles sideline area
plt.plot([2, 11, 11, 2, 2], [2.5, 2.5, 10.5, 10.5, 2.5],linestyle = 'solid', linewidth = 3)
plt.gca().annotate('Doubles Sideline', xy=(8, 10.8), xycoords='data', fontsize=12)
plt.gca().annotate('Baseline', xy=(11.2, 5.5), xycoords='data', fontsize=12, rotation=270)
plt.gca().annotate('<-2 inch->', xy=(2.7, 10.5), xycoords='data', fontsize=7, rotation=270)
plt.gca().annotate('<---------------------------------------------------------------- \
                   44 inch | 13.41 m \
                   ------------------------------------------------------------->', xy=(2, 1.2), xycoords='data', fontsize=12)
plt.gca().annotate('<------------------ 20 inch | 6.1 m ------------------->', xy=(11.7, 2.5), xycoords='data', fontsize=12, rotation=270)


#draw bottom points for singles sideline
plt.plot(2, 3.2, marker = 'o')
plt.plot(11, 3.2, marker = 'o')
plt.plot([2, 11], [3.2, 3.2])

#draw right points for singles sideline
plt.plot(10.5, 2.5, marker = 'o')
plt.plot(10.5, 10.5, marker = 'o')
plt.plot([10.5, 10.5], [2.5, 10.5])


#draw top points for singles sideline
plt.plot(2, 9.8, marker = 'o')
plt.plot(11, 9.8, marker = 'o')
plt.plot([2, 11], [9.8, 9.8])

#draw left points for singles sideline
plt.plot(2.5, 10.5, marker = 'o')
plt.plot(2.5, 2.5, marker = 'o')
plt.plot([2.5, 2.5], [10.5, 2.5])

plt.gca().annotate('Singles Sideline', xy=(8, 10), xycoords='data', fontsize=12)
plt.gca().annotate('<-1.5i->', xy=(2.6, 9.8), xycoords='data', fontsize=7, rotation=270)


#net points
#take the middle of doubles sideline bottom points  
x = (2 + 11)/2
plt.plot(x, 2.5, marker = 'o')
plt.plot(x, 10.5, marker = 'o')
plt.plot([x, x], [2.5, 10.5])
plt.gca().annotate('Net', xy=(x, 6.5), xycoords='data', fontsize=12, rotation=270)


plt.xlim(1, 12)
plt.ylim(1, 12)
plt.show()

Draw Short Service Line

In [7]:
plt.figure(figsize = (18, 7))

#points for clearance area
plt.plot(1.5, 1.5, marker = 'o')
plt.plot(11.5, 1.5, marker = 'o')
plt.plot(11.5, 11.5, marker = 'o')
plt.plot(1.5, 11.5, marker = 'o')
plt.gca().annotate('Clearance', xy=(8, 11.8), xycoords='data', fontsize=12)

#draw line in clearance area
plt.plot([1.5, 11.5, 11.5, 1.5, 1.5], [1.5, 1.5, 11.5, 11.5, 1.5],linestyle = 'dashed')

#draw points for doubles sideline
plt.plot(2, 2.5, marker = 'o')
plt.plot(11, 2.5, marker = 'o')
plt.plot(11, 10.5, marker = 'o')
plt.plot(2, 10.5, marker = 'o')

#draw line in doubles sideline area
plt.plot([2, 11, 11, 2, 2], [2.5, 2.5, 10.5, 10.5, 2.5],linestyle = 'solid', linewidth = 3)
plt.gca().annotate('Doubles Sideline', xy=(8, 10.8), xycoords='data', fontsize=12)
plt.gca().annotate('Baseline', xy=(11.2, 5.5), xycoords='data', fontsize=12, rotation=270)
plt.gca().annotate('<-2 inch->', xy=(2.7, 10.5), xycoords='data', fontsize=7, rotation=270)
plt.gca().annotate('<---------------------------------------------------------------- \
                   44 inch | 13.41 m \
                   ------------------------------------------------------------->', xy=(2, 1.2), xycoords='data', fontsize=12)
plt.gca().annotate('<------------------ 20 inch | 6.1 m ------------------->', xy=(11.7, 2.5), xycoords='data', fontsize=12, rotation=270)


#draw bottom points for singles sideline
plt.plot(2, 3.2, marker = 'o')
plt.plot(11, 3.2, marker = 'o')
plt.plot([2, 11], [3.2, 3.2])

#draw right points for singles sideline
plt.plot(10.5, 2.5, marker = 'o')
plt.plot(10.5, 10.5, marker = 'o')
plt.plot([10.5, 10.5], [2.5, 10.5])


#draw top points for singles sideline
plt.plot(2, 9.8, marker = 'o')
plt.plot(11, 9.8, marker = 'o')
plt.plot([2, 11], [9.8, 9.8])

#draw left points for singles sideline
plt.plot(2.5, 10.5, marker = 'o')
plt.plot(2.5, 2.5, marker = 'o')
plt.plot([2.5, 2.5], [10.5, 2.5])

plt.gca().annotate('Singles Sideline', xy=(8, 10), xycoords='data', fontsize=12)
plt.gca().annotate('<-1.5i->', xy=(2.6, 9.8), xycoords='data', fontsize=7, rotation=270)


#net points
#take the middle of doubles sideline bottom points  
x = (2 + 11)/2
#print(x)
plt.plot(x, 2.5, marker = 'o')
plt.plot(x, 10.5, marker = 'o')
plt.plot([x, x], [2.5, 10.5])
plt.gca().annotate('Net', xy=(x, 6.5), xycoords='data', fontsize=12, rotation=270)


#left short service line
# point will start from single sideline to net. Then divide into 3 parts.
x1 = (x - 2.5)/3 
print(x1)
x2 = 6.5 - x1
plt.plot(x2, 2.5, marker = 'o', color = 'red')
plt.plot(x2, 10.5, marker = 'o', color = 'red')
plt.plot([x2, x2], [2.5, 10.5])

#right short service line
x3 = 6.5 + x1
plt.plot(x3, 2.5, marker = 'o', color = 'red')
plt.plot(x3, 10.5, marker = 'o', color = 'red')
plt.plot([x3, x3], [2.5, 10.5])

plt.gca().annotate('Short Service Line', xy=(x3 - 0.3, 5), xycoords='data', fontsize=12, rotation=270)

plt.xlim(1, 12)
plt.ylim(1, 12)
plt.show()
1.3333333333333333

Write distance between short service line and net

In [12]:
plt.figure(figsize = (18, 7))

#points for clearance area
plt.plot(1.5, 1.5, marker = 'o')
plt.plot(11.5, 1.5, marker = 'o')
plt.plot(11.5, 11.5, marker = 'o')
plt.plot(1.5, 11.5, marker = 'o')
plt.gca().annotate('Clearance', xy=(8, 11.8), xycoords='data', fontsize=12)

#draw line in clearance area
plt.plot([1.5, 11.5, 11.5, 1.5, 1.5], [1.5, 1.5, 11.5, 11.5, 1.5],linestyle = 'dashed')

#draw points for doubles sideline
plt.plot(2, 2.5, marker = 'o')
plt.plot(11, 2.5, marker = 'o')
plt.plot(11, 10.5, marker = 'o')
plt.plot(2, 10.5, marker = 'o')

#draw line in doubles sideline area
plt.plot([2, 11, 11, 2, 2], [2.5, 2.5, 10.5, 10.5, 2.5],linestyle = 'solid', linewidth = 3)
plt.gca().annotate('Doubles Sideline', xy=(8, 10.8), xycoords='data', fontsize=12)
plt.gca().annotate('Baseline', xy=(11.2, 5.5), xycoords='data', fontsize=12, rotation=270)
plt.gca().annotate('<-2 inch->', xy=(2.7, 10.5), xycoords='data', fontsize=7, rotation=270)
plt.gca().annotate('<---------------------------------------------------------------- \
                   44 inch | 13.41 m \
                   ------------------------------------------------------------->', xy=(2, 1.2), xycoords='data', fontsize=12)
plt.gca().annotate('<------------------ 20 inch | 6.1 m ------------------->', xy=(11.7, 2.5), xycoords='data', fontsize=12, rotation=270)


#draw bottom points for singles sideline
plt.plot(2, 3.2, marker = 'o')
plt.plot(11, 3.2, marker = 'o')
plt.plot([2, 11], [3.2, 3.2])

#draw right points for singles sideline
plt.plot(10.5, 2.5, marker = 'o')
plt.plot(10.5, 10.5, marker = 'o')
plt.plot([10.5, 10.5], [2.5, 10.5])


#draw top points for singles sideline
plt.plot(2, 9.8, marker = 'o')
plt.plot(11, 9.8, marker = 'o')
plt.plot([2, 11], [9.8, 9.8])

#draw left points for singles sideline
plt.plot(2.5, 10.5, marker = 'o')
plt.plot(2.5, 2.5, marker = 'o')
plt.plot([2.5, 2.5], [10.5, 2.5])

plt.gca().annotate('Singles Sideline', xy=(8, 10), xycoords='data', fontsize=12)
plt.gca().annotate('<-1.5i->', xy=(2.6, 9.8), xycoords='data', fontsize=7, rotation=270)


#net points
#take the middle of doubles sideline bottom points  
x = (2 + 11)/2
#print(x)
plt.plot(x, 2.5, marker = 'o')
plt.plot(x, 10.5, marker = 'o')
plt.plot([x, x], [2.5, 10.5])
plt.gca().annotate('Net', xy=(x, 6.5), xycoords='data', fontsize=12, rotation=270)


#left short service line
# point will start from single sideline to net. Then divide into 3 parts.
x1 = (x - 2.5)/3 
#print(x1)
x2 = 6.5 - x1
plt.plot(x2, 2.5, marker = 'o', color = 'red')
plt.plot(x2, 10.5, marker = 'o', color = 'red')
plt.plot([x2, x2], [2.5, 10.5])

#right short service line
x3 = 6.5 + x1
plt.plot(x3, 2.5, marker = 'o', color = 'red')
plt.plot(x3, 10.5, marker = 'o', color = 'red')
plt.plot([x3, x3], [2.5, 10.5])

plt.gca().annotate('Short Service Line', xy=(x3 - 0.3, 5), xycoords='data', fontsize=12, rotation=270)
plt.gca().annotate('<-.76 m-->', xy=(2, 3.4), xycoords='data', fontsize=8)
plt.gca().annotate('<--------------- 13 inch | 3.9 m ------------->', xy=(2.5, 3.4), xycoords='data', fontsize=12)
plt.gca().annotate('<-- 6.5 inch | 1.98 m -->', xy=(x2, 3.4), xycoords='data', fontsize=10)


plt.xlim(1, 12)
plt.ylim(1, 12)
plt.show()

Draw Center Line

In [13]:
plt.figure(figsize = (18, 7))

#points for clearance area
plt.plot(1.5, 1.5, marker = 'o')
plt.plot(11.5, 1.5, marker = 'o')
plt.plot(11.5, 11.5, marker = 'o')
plt.plot(1.5, 11.5, marker = 'o')
plt.gca().annotate('Clearance', xy=(8, 11.8), xycoords='data', fontsize=12)

#draw line in clearance area
plt.plot([1.5, 11.5, 11.5, 1.5, 1.5], [1.5, 1.5, 11.5, 11.5, 1.5],linestyle = 'dashed')

#draw points for doubles sideline
plt.plot(2, 2.5, marker = 'o')
plt.plot(11, 2.5, marker = 'o')
plt.plot(11, 10.5, marker = 'o')
plt.plot(2, 10.5, marker = 'o')

#draw line in doubles sideline area
plt.plot([2, 11, 11, 2, 2], [2.5, 2.5, 10.5, 10.5, 2.5],linestyle = 'solid', linewidth = 3)
plt.gca().annotate('Doubles Sideline', xy=(8, 10.8), xycoords='data', fontsize=12)
plt.gca().annotate('Baseline', xy=(11.2, 5.5), xycoords='data', fontsize=12, rotation=270)
plt.gca().annotate('<-2 inch->', xy=(2.7, 10.5), xycoords='data', fontsize=7, rotation=270)
plt.gca().annotate('<---------------------------------------------------------------- \
                   44 inch | 13.41 m \
                   ------------------------------------------------------------->', xy=(2, 1.2), xycoords='data', fontsize=12)
plt.gca().annotate('<------------------ 20 inch | 6.1 m ------------------->', xy=(11.7, 2.5), xycoords='data', fontsize=12, rotation=270)


#draw bottom points for singles sideline
plt.plot(2, 3.2, marker = 'o')
plt.plot(11, 3.2, marker = 'o')
plt.plot([2, 11], [3.2, 3.2])

#draw right points for singles sideline
plt.plot(10.5, 2.5, marker = 'o')
plt.plot(10.5, 10.5, marker = 'o')
plt.plot([10.5, 10.5], [2.5, 10.5])


#draw top points for singles sideline
plt.plot(2, 9.8, marker = 'o')
plt.plot(11, 9.8, marker = 'o')
plt.plot([2, 11], [9.8, 9.8])

#draw left points for singles sideline
plt.plot(2.5, 10.5, marker = 'o')
plt.plot(2.5, 2.5, marker = 'o')
plt.plot([2.5, 2.5], [10.5, 2.5])

plt.gca().annotate('Singles Sideline', xy=(8, 10), xycoords='data', fontsize=12)
plt.gca().annotate('<-1.5i->', xy=(2.6, 9.8), xycoords='data', fontsize=7, rotation=270)


#net points
#take the middle of doubles sideline bottom points  
x = (2 + 11)/2
#print(x)
plt.plot(x, 2.5, marker = 'o')
plt.plot(x, 10.5, marker = 'o')
plt.plot([x, x], [2.5, 10.5])
plt.gca().annotate('Net', xy=(x, 6.5), xycoords='data', fontsize=12, rotation=270)


#left short service line
# point will start from single sideline to net. Then divide into 3 parts.
x1 = (x - 2.5)/3 
#print(x1)
x2 = 6.5 - x1
plt.plot(x2, 2.5, marker = 'o', color = 'red')
plt.plot(x2, 10.5, marker = 'o', color = 'red')
plt.plot([x2, x2], [2.5, 10.5])

#right short service line
x3 = 6.5 + x1
plt.plot(x3, 2.5, marker = 'o', color = 'red')
plt.plot(x3, 10.5, marker = 'o', color = 'red')
plt.plot([x3, x3], [2.5, 10.5])

plt.gca().annotate('Short Service Line', xy=(x3 - 0.3, 5), xycoords='data', fontsize=12, rotation=270)
plt.gca().annotate('<-.76 m-->', xy=(2, 3.4), xycoords='data', fontsize=8)
plt.gca().annotate('<--------------- 13 inch | 3.9 m ------------->', xy=(2.5, 3.4), xycoords='data', fontsize=12)
plt.gca().annotate('<-- 6.5 inch | 1.98 m -->', xy=(x2, 3.4), xycoords='data', fontsize=10)


#draw points for left center line
y1 = (2.5 + 10.5)/2
plt.plot(2, y1, marker = 'o')
plt.plot(x2, y1, marker = 'o')
plt.plot([2, x2], [y1, y1])
plt.gca().annotate('Left Service Court', xy=(3, y1 + 1.8), xycoords='data', fontsize=12)
plt.gca().annotate('Center Line', xy=(3.5, y1 + .3), xycoords='data', fontsize=12)
plt.gca().annotate('Right Service Court', xy=(3, y1 - 1.8), xycoords='data', fontsize=12)
plt.gca().annotate('<--8.5 inch | 2.59 m -->', xy=(2.2, y1), xycoords='data', fontsize=10, rotation=270)


#draw points for right center line
plt.plot(x3, y1, marker = 'o')
plt.plot(11, y1, marker = 'o')
plt.plot([x3, 11], [y1, y1])
plt.gca().annotate('Doubles Service Line', xy=(10.6, 6.7), xycoords='data', fontsize=10, rotation=270)


plt.xlim(1, 12)
plt.ylim(1, 12)
plt.show()

Final code

In [10]:
plt.figure(figsize = (18, 7))

#points for clearance area
plt.plot(1.5, 1.5, marker = 'o')
plt.plot(11.5, 1.5, marker = 'o')
plt.plot(11.5, 11.5, marker = 'o')
plt.plot(1.5, 11.5, marker = 'o')
plt.gca().annotate('Clearance', xy=(8, 11.8), xycoords='data', fontsize=12)

#draw line in clearance area
plt.plot([1.5, 11.5, 11.5, 1.5, 1.5], [1.5, 1.5, 11.5, 11.5, 1.5],linestyle = 'dashed')

#draw points for doubles sideline
plt.plot(2, 2.5, marker = 'o')
plt.plot(11, 2.5, marker = 'o')
plt.plot(11, 10.5, marker = 'o')
plt.plot(2, 10.5, marker = 'o')

#draw line in doubles sideline area
plt.plot([2, 11, 11, 2, 2], [2.5, 2.5, 10.5, 10.5, 2.5],linestyle = 'solid', linewidth = 3)
plt.gca().annotate('Doubles Sideline', xy=(8, 10.8), xycoords='data', fontsize=12)
plt.gca().annotate('Baseline', xy=(11.2, 5.5), xycoords='data', fontsize=12, rotation=270)
plt.gca().annotate('<-2 inch->', xy=(2.7, 10.5), xycoords='data', fontsize=7, rotation=270)
plt.gca().annotate('<---------------------------------------------------------------- \
                   44 inch | 13.41 m \
                   ------------------------------------------------------------->', xy=(2, 1.2), xycoords='data', fontsize=12)
plt.gca().annotate('<------------------ 20 inch | 6.1 m ------------------->', xy=(11.7, 2.5), xycoords='data', fontsize=12, rotation=270)


#draw bottom points for singles sideline
plt.plot(2, 3.2, marker = 'o')
plt.plot(11, 3.2, marker = 'o')
plt.plot([2, 11], [3.2, 3.2])

#draw right points for singles sideline
plt.plot(10.5, 2.5, marker = 'o')
plt.plot(10.5, 10.5, marker = 'o')
plt.plot([10.5, 10.5], [2.5, 10.5])


#draw top points for singles sideline
plt.plot(2, 9.8, marker = 'o')
plt.plot(11, 9.8, marker = 'o')
plt.plot([2, 11], [9.8, 9.8])

#draw left points for singles sideline
plt.plot(2.5, 10.5, marker = 'o')
plt.plot(2.5, 2.5, marker = 'o')
plt.plot([2.5, 2.5], [10.5, 2.5])

plt.gca().annotate('Singles Sideline', xy=(8, 10), xycoords='data', fontsize=12)
plt.gca().annotate('<-1.5i->', xy=(2.6, 9.8), xycoords='data', fontsize=7, rotation=270)


#net points
#take the middle of doubles sideline bottom points  
x = (2 + 11)/2
#print(x)
plt.plot(x, 2.5, marker = 'o')
plt.plot(x, 10.5, marker = 'o')
plt.plot([x, x], [2.5, 10.5])
plt.gca().annotate('Net', xy=(x, 6.5), xycoords='data', fontsize=12, rotation=270)


#left short service line
# point will start from single sideline to net. Then divide into 3 parts.
x1 = (x - 2.5)/3 
#print(x1)
x2 = 6.5 - x1
plt.plot(x2, 2.5, marker = 'o', color = 'red')
plt.plot(x2, 10.5, marker = 'o', color = 'red')
plt.plot([x2, x2], [2.5, 10.5])

#right short service line
x3 = 6.5 + x1
plt.plot(x3, 2.5, marker = 'o', color = 'red')
plt.plot(x3, 10.5, marker = 'o', color = 'red')
plt.plot([x3, x3], [2.5, 10.5])

plt.gca().annotate('Short Service Line', xy=(x3 - 0.3, 5), xycoords='data', fontsize=12, rotation=270)
plt.gca().annotate('<-.76 m-->', xy=(2, 3.4), xycoords='data', fontsize=8)
plt.gca().annotate('<--------------- 13 inch | 3.9 m ------------->', xy=(2.5, 3.4), xycoords='data', fontsize=12)
plt.gca().annotate('<-- 6.5 inch | 1.98 m -->', xy=(x2, 3.4), xycoords='data', fontsize=10)


#draw points for left center line
y1 = (2.5 + 10.5)/2
plt.plot(2, y1, marker = 'o')
plt.plot(x2, y1, marker = 'o')
plt.plot([2, x2], [y1, y1])
plt.gca().annotate('Left Service Court', xy=(3, y1 + 1.8), xycoords='data', fontsize=12)
plt.gca().annotate('Center Line', xy=(3.5, y1 + .3), xycoords='data', fontsize=12)
plt.gca().annotate('Right Service Court', xy=(3, y1 - 1.8), xycoords='data', fontsize=12)
plt.gca().annotate('<--8.5 inch | 2.59 m -->', xy=(2.2, y1), xycoords='data', fontsize=10, rotation=270)


#draw points for right center line
plt.plot(x3, y1, marker = 'o')
plt.plot(11, y1, marker = 'o')
plt.plot([x3, 11], [y1, y1])
plt.gca().annotate('Doubles Service Line', xy=(10.6, 6.7), xycoords='data', fontsize=10, rotation=270)



plt.xlim(1, 12)
plt.ylim(1, 12)
plt.title("Badminton Court", fontsize=28, color = 'red')
plt.axis("off")
plt.show()

Machine Learning

  1. Deal Banking Marketing Campaign Dataset With Machine Learning

TensorFlow

  1. Difference Between Scalar, Vector, Matrix and Tensor
  2. TensorFlow Deep Learning Model With IRIS Dataset
  3. Sequence to Sequence Learning With Neural Networks To Perform Number Addition
  4. Image Classification Model MobileNet V2 from TensorFlow Hub
  5. Step by Step Intent Recognition With BERT
  6. Sentiment Analysis for Hotel Reviews With NLTK and Keras
  7. Simple Sequence Prediction With LSTM
  8. Image Classification With ResNet50 Model
  9. Predict Amazon Inc Stock Price with Machine Learning
  10. Predict Diabetes With Machine Learning Algorithms
  11. TensorFlow Build Custom Convolutional Neural Network With MNIST Dataset
  12. Deal Banking Marketing Campaign Dataset With Machine Learning

PySpark

  1. How to Parallelize and Distribute Collection in PySpark
  2. Role of StringIndexer and Pipelines in PySpark ML Feature - Part 1
  3. Role of OneHotEncoder and Pipelines in PySpark ML Feature - Part 2
  4. Feature Transformer VectorAssembler in PySpark ML Feature - Part 3
  5. Logistic Regression in PySpark (ML Feature) with Breast Cancer Data Set

PyTorch

  1. Build the Neural Network with PyTorch
  2. Image Classification with PyTorch
  3. Twitter Sentiment Classification In PyTorch
  4. Training an Image Classifier in Pytorch

Natural Language Processing

  1. Spelling Correction Of The Text Data In Natural Language Processing
  2. Handling Text For Machine Learning
  3. Extracting Text From PDF File in Python Using PyPDF2
  4. How to Collect Data Using Twitter API V2 For Natural Language Processing
  5. Converting Text to Features in Natural Language Processing
  6. Extract A Noun Phrase For A Sentence In Natural Language Processing