3

I've plotted random triangles in space with code below but I want to fill the triangles with colour. I'm aware of the fill_between() function in matplotlib, however I am not sure how to implement it in the example below

import matplotlib.pyplot as plt

trianglex = [ 1, 10, 7, 1 ] #repeated last coordinates so that the last coordinate joins the first coordinate to form the outline of the triangle
triangley = [ 2, 8, 4, 2 ]

triangle2x = [ 13, 25, 21, 13]
triangle2y = [ 5,  7 , 14, 5 ]


plt.figure('Triangles')
for i in range(3):
    plt.plot( trianglex, triangley, 'o-')

for i in range(3):
    plt.plot( triangle2x, triangle2y, 'o-')

plt.show()

which gives Triangles

piccolo
  • 2,093
  • 3
  • 24
  • 56

1 Answers1

6

You could use plt.fill() as follows:

import matplotlib.pyplot as plt

trianglex = [ 1, 10, 7, 1 ] 
triangley = [ 2, 8, 4, 2 ]    
triangle2x = [ 13, 25, 21, 13]
triangle2y = [ 5,  7 , 14, 5 ]

plt.figure('Triangles')
for i in range(3):
    plt.plot(trianglex, triangley, 'o-')
plt.fill(trianglex, triangley)

for i in range(3):
    plt.plot( triangle2x, triangle2y, 'o-')
plt.fill(triangle2x, triangle2y)

plt.show()

Output

enter image description here

gtlambert
  • 11,711
  • 2
  • 30
  • 48