PYTHON - Podstawy biblioteki matplotlib
Wprowadenie do stosowania biblioteki matplotlib, stosowanej do wykonywania wykresów.
	zaczynamy od zaimportowania i zainicjowania biblioteki pygame.
	
	
	from matplotlib import pyplot as plt
	
	
	Matplotlib posiada zestaw styli, w jakich wykonywane są wykresy. Aby sprawdzić jakie są dostępne należy napisać kod skladających się z dwóch nastepujących linii.
	
	from matplotlib import pyplot as plt
	print(plt.style.available)  - sprawdzenie dostępnych styli wykresów
	
	Na ekranie wyświetlą się dostepne style, np. 
	
	['Solarize_Light2', '_classic_test_patch', 'bmh', 'classic', 'dark_background', 'fast', 'fivethirtyeight', 'ggplot', 'grayscale', 'seaborn', 
	'seaborn-bright', 'seaborn-colorblind', 'seaborn-dark', 'seaborn-dark-palette', 'seaborn-darkgrid', 'seaborn-deep', 'seaborn-muted', 'seaborn-notebook', 
	'seaborn-paper', 'seaborn-pastel', 'seaborn-poster', 'seaborn-talk', 'seaborn-ticks', 'seaborn-white', 'seaborn-whitegrid', 'tableau-colorblind10']
	
	Wybieramy styl jak poniżej. 
	
	
	plt.style.use('ggplot')
	
	
	Ponieważ potrzebne są dane, definiujemy listy jak poniżej.
	
	ages_x = [25,26,27,28,29,30,31,32,33,34,35]
	dev_y=[38496,42000,46752,49320,53200,56000,62316,64928,67317,68748,73752]
	js_dev_y=[37810,43515,46823,49293,53437,56373,62375,66674,68745,68746,74583]
	py_dev_y=[45372,48876,53580,57287,63016,65998,70003,70000,71496,75370,83640]
   	
	Następnie definiujemy dane na wykresie.
	
	
	plt.plot(ages_x,dev_y,color='k',linestyle='--', marker='.',label="dev")
	plt.plot(ages_x,py_dev_y,color='b',marker='o',linewidth=3,label="python") #trzeci i czwarty argument to format linii
	plt.plot(ages_x,js_dev_y,color='g',marker='+',linewidth=2,label="java")
   	
	
	
	Teraz definiujemy nazwy osi i wykresu.
	
	
	plt.xlabel('ages')
	plt.ylabel('salary')
	plt.title('median salary (USD) by age')
	plt.legend()
   	
	Następnie dodajemy siatkę na wykresie.
	Aby wyświetlić wykres niezbędna jest komenda "plt.show()".
	
	plt.grid(True)
	plt.show()
   	
	Na koniec zapisujemy wykres do pliku *.png.
	
	plt.savefig('plot.png')
	
	Cały kod prezentuje się w sposób nastepujący.
	
	from matplotlib import pyplot as plt
	#print(plt.style.available)  - sprawdzenie dostępnych styli wykresów
	plt.style.use('ggplot')
	ages_x = [25,26,27,28,29,30,31,32,33,34,35]
	dev_y=[38496,42000,46752,49320,53200,56000,62316,64928,67317,68748,73752]
	js_dev_y=[37810,43515,46823,49293,53437,56373,62375,66674,68745,68746,74583]
	py_dev_y=[45372,48876,53580,57287,63016,65998,70003,70000,71496,75370,83640]
	plt.plot(ages_x,dev_y,color='k',linestyle='--', marker='.',label="dev") #trzeci, czwarty i piąty argument to format linii
	plt.plot(ages_x,py_dev_y,color='b',marker='o',linewidth=3,label="python") #trzeci i czwarty argument to format linii
	plt.plot(ages_x,js_dev_y,color='g',marker='+',linewidth=2,label="java")
	plt.xlabel('ages')
	plt.ylabel('salary')
	plt.title('median salary (USD) by age')
	#plt.legend(["dev","python"]) pierwsza metoda tworzenia legend
	plt.legend() #druga metoda umieszczania legend
	plt.tight_layout()
	plt.grid(True)
	plt.show()
	plt.savefig('plot.png')
	
	
	Poniżej można zobaczyć wykres wykonany za pomocą powyższego kodu.
	
  
	Jeżeli chcemy zmienić wykres na rodzaj słupkowy, konieczne jest podmienienie fragmentu komendy z plt.plot na plt.bar.
	
	plt.bar(x_indexes-width,dev_y,width=width,color='#e5ae38',linestyle='--', label="dev") 
	plt.bar(x_indexes,py_dev_y,width=width,color='#444444',linewidth=3,label="python")
	plt.bar(x_indexes+width,js_dev_y,width=width,color='#008fd5',linewidth=2,label="java")
	
	
	Efektem tego będzie wykres słupkowy, ale niestety wartości nałożą się na siebie.
	
  
	Aby rozwiązać ten problem należy zaimportować bibliotekę numpy, oraz dopisać kilka linijek kodu.
	
	import numpy as np
	
	x_indexes=np.arange(len(ages_x))
	width=.25
	
	plt.bar(x_indexes-width,dev_y,width=width,color='#e5ae38',linestyle='--', label="dev") #trzeci, czwarty i piąty argument to format linii
	plt.bar(x_indexes,py_dev_y,width=width,color='#444444',linewidth=3,label="python") #trzeci i czwarty argument to format linii
	plt.bar(x_indexes+width,js_dev_y,width=width,color='#008fd5',linewidth=2,label="java")
	
	W komendach rysowania słupków, rozsuwamy je wzdlęgem siebie o zdefiniowaną wcześniej szerokość.
	
  
	Cały kod wygląda następująco.
	
	from matplotlib import pyplot as plt
	import numpy as np
	#print(plt.style.available)  - sprawdzenie dostępnych styli wykresów
	plt.style.use('fivethirtyeight')
	ages_x = [25,26,27,28,29,30,31,32,33,34,35]
	x_indexes=np.arange(len(ages_x))
	width=.25
	dev_y=[38496,42000,46752,49320,53200,56000,62316,64928,67317,68748,73752]
	js_dev_y=[37810,43515,46823,49293,53437,56373,62375,66674,68745,68746,74583]
	py_dev_y=[45372,48876,53580,57287,63016,65998,70003,70000,71496,75370,83640]
	plt.xticks(ticks=x_indexes,labels=ages_x) #wprowadzenie numeracji osi X zgodnie z serią danych
	plt.xlabel('ages')
	plt.ylabel('salary')
	plt.title('median salary (USD) by age')
	plt.tight_layout()
	plt.grid(True)	#dodajemy siatkędo wykresu
	plt.bar(x_indexes-width,dev_y,width=width,color='#e5ae38',linestyle='--', label="dev") #trzeci, czwarty i piąty argument to format linii
	plt.bar(x_indexes,py_dev_y,width=width,color='#444444',linewidth=3,label="python") #trzeci i czwarty argument to format linii
	plt.bar(x_indexes+width,js_dev_y,width=width,color='#008fd5',linewidth=2,label="java")
	plt.legend() #druga metoda umieszczania legend
	plt.show()
	plt.savefig('plot.png')	#zapisujemy wykres do pliku o formacie PNG