11

I would like to draw a triangle using python3 module matplotlib.

import numpy as np 
import matplotlib.pyplot as plt

X_train = np.array([[1,1], [2,2.5], [3, 1], [8, 7.5], [7, 9], [9, 9]])
Y_train = ['red', 'red', 'red', 'blue', 'blue', 'blue']

plt.figure()
plt.scatter(X_train[:, 0], X_train[:, 1], s = 170, color = Y_train[:])
plt.show()

It displays 6 dots but they are grouped separately in 2 places. (color helps to see it clearly)

There are 2 sets of 3 dots. I want each set(3 dots) be united in the triangle.

How is it possible to implement this? How to build a triangle based on 3 dots using matplotlib?

Any suggestions are appreciated ;)

1 Answer 1

24

A triangle is a polygon. You may use plt.Polygon to draw a polygon.

import numpy as np 
import matplotlib.pyplot as plt

X = np.array([[1,1], [2,2.5], [3, 1], [8, 7.5], [7, 9], [9, 9]])
Y = ['red', 'red', 'red', 'blue', 'blue', 'blue']

plt.figure()
plt.scatter(X[:, 0], X[:, 1], s = 170, color = Y[:])

t1 = plt.Polygon(X[:3,:], color=Y[0])
plt.gca().add_patch(t1)

t2 = plt.Polygon(X[3:6,:], color=Y[3])
plt.gca().add_patch(t2)

plt.show()

enter image description here

Sign up to request clarification or add additional context in comments.

3 Comments

Thanks! By the way, is there any function, which helps to calculate the area of a triangle? Or, in general, a function, which finds the area of the complex figure?
The Shoelace-formula can be used to calculate the areo of a triangle or polygon.
how to turn off fill for the triangles?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.