#!/usr/bin/env python3 # coding: utf-8 from matplotlib import pyplot, patches from matplotlib.font_manager import FontProperties ''' elementarne figury geometryczne rysowane za pomocą pyplot ''' # przygotowanie fontu -- ważne jeżeli chemy mieć znaki unikodu (np. polskie litery) font = FontProperties('DejaVu Sans') # nazwa unikodowego fontu w systemie # ustalenie parametrów wykresu pyplot.title(u'Tytuł wykresu', fontproperties = font) pyplot.xlabel(u'Oś iksów', fontproperties = font) pyplot.ylabel(u'Oś ygreków', fontproperties = font) # definiujemy kilka figur do narysowania # szary okrąg kolo1 = patches.Circle((0, 0), 2.0, facecolor='none', edgecolor=(0.8,0.8,0.8)) # zielony prostokąt z czarnym brzegiem prostokatA = patches.Rectangle((1,2), 2, 1, facecolor = (0.0, 0.5, 0.0), edgecolor = 'k') # dane do narysowania zamkniętej linii łamanej (brzegu trójkąta) x = [0, 1, 2, 0] y = [0, -1, -1, 0] # wstawiamy zdefiniowane figury na wykres uklad = pyplot.gca() uklad.add_patch(kolo1) uklad.add_patch(prostokatA) pyplot.plot(x, y, 'r-v') # 'r-v': r = czerwony; - = linia ciągła; v = trójkątne znaczniki wierzchołków pyplot.plot([-2.0], [-2.0], 'bo') # 'bo': b = niebieski; o = znacznik w kształcie koła # opis figur na wykresie pyplot.text(-0.5,2.1, u"Okrąg", fontproperties = font) pyplot.text(1.0, 3.1, u"Prostokąt", fontproperties = font) pyplot.text(2.2,-1.0, u"Linia łamana", fontproperties = font) pyplot.text(-2.1,-2.5, u"Punkt", fontproperties = font) # ustalamy zakresy osi pyplot.axis('equal') d = 5 pyplot.axis([-d,d,-d,d]) # zapisujemy rysunek w pliku (eps, pdf, png, svg) bez pokazywania go na ekranie # pyplot.savefig('wykres.pdf') # pyplot.savefig('wykres.png') # albo pokazujemy rysunek na ekranie pyplot.show()