Будувати множинні графіки в python можна різними способами. При побудові графіків з використанням бібліотеки Matplotlib існує два стилі, які часто комбінуються. Один це стиль matlab, який реалізовується за допомогою функцій у модулі pyplot. Інший стиль - це об'єктно- орієнтований стиль, який мені особисто більше подобається (мабуть Java дається взнаки). В об'єктно орієнтованому стилі ви маєте фігуру - що представляє собою весь графік і підграфіки(subplots), що предсталяються об'єктами Axes. Взявши потрібний об'єкт Axes ми отримуємо можливість маніпулювати нашим підграфіком.
Один із способів це зробити використати метод(функцію) sublots():
Таким чином можемо побудувати наші графіки:
Дивіться також:
Один із способів це зробити використати метод(функцію) sublots():
#будуємо графік 2х2 (4 підграфіки) fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2)Можна також так:
fig, axs = plt.subplots(2, 2, sharex=True, sharey=True) axs[0, 0].plot(x) # працюємо з координатами підграфіківsharex=True, sharey=True - означає, що у нас будуть для всіх графіків спільні осі Х та Y. Якщо хочемо для кожного графіка свої осі, то не задаємо ці параметри.
Таким чином можемо побудувати наші графіки:
import matplotlib.pyplot as plt; import pandas as pd; x=["1991","1992","1995","2010","2011","2016"] y=[5,4,5,2,4,6] #створюємо фігуру 2х2 (4 підграфіки) fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2) fig.tight_layout(pad=3.0)#простір між підграфіками #задаємо назву для всієї фігури fig.suptitle("Різні діаграми", fontsize=14) #first sublot ax1.plot(x, y) ax1.grid() ax1.set_title("price") ax1.tick_params(axis='x', rotation=45) # повертаємо позначки осі x ax1.set_ylabel('Ціна') # підпис осі y ax1.set_xlabel('Роки') # підпис осі x #second sublot ax2.scatter(x, y) ax2.tick_params(axis='x', rotation=45) #third subplot ax3.bar(x,y) ax3.tick_params(axis='x', rotation=90) #fourth sublot ax4.pie(y, labels=y,explode = (0.1,0.2,0.3,0.3,0.3, 0.3),startangle=90, autopct='%.1f%%') ax4.legend(bbox_to_anchor = (-0.99, -0.3, 0.25, 0.25),loc = 'lower left', labels=x) plt.show()Результат:
Дивіться також:
Немає коментарів:
Дописати коментар