matplotlib

Simple Examples

errorbar

#!/usr/bin/python3

"""
	VER = 23.1026
	--
	DESCR:
	Побудова matplotlib.pyplot errorbar (лінія з похибками) в PDF (через borb)

"""

import sys
import _lib_
import _conf

from borb.pdf import Document
from borb.pdf import Page
from borb.pdf import SingleColumnLayout
from borb.pdf import PageLayout
from borb.pdf import Paragraph
from borb.pdf import PDF
from borb.pdf import Chart

from decimal import Decimal
import matplotlib.pyplot as plt
import numpy as np                        # for np.arange


SCRIPT_NAME = 'test_plot_errorbar'

def create_plot() -> None:

	fig, ax = plt.subplots()
	x = [1, 2, 5, 8, 12, 16]
	y_et = [1, 2, 5, 8, 12, 16]

	y = [0.82, 1.5, 4.32, 7.12, 10.86, 14.81]
	yerr = [0.44, 0.52, 0.94, 0.93, 1.13, 1.44]

	ax.set_title('Залежність кількості поділок шкали від швидкості потоку')
	ax.set_ylabel('Кількість поділок шкали за секунду')
	ax.set_xlabel('Середня швидкість повітряного потоку, м/с')
	ax.grid(True)

	# ручна розмітка поділок на осях, якщо необхідна своя
	yticks = np.arange(0, 17, 1)
	xticks = np.arange(1, 17, 1)
	ax.set_xticks(xticks)
	ax.set_yticks(yticks)

	plt.plot(x, y_et, color='orange', dashes=[6, 2], label='Ідеальний прилад')
	plt.errorbar(x, y, yerr=yerr, label='Анемометр 11486')
	
	plt.legend(loc='lower right')
	# https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.legend.html#matplotlib.pyplot.legend

	return plt.gcf()


def main():
	# create Document
	doc: Document = Document()

	# create Page
	page: Page = Page()

	# add Page to Document
	doc.add_page(page)

	# set a PageLayout
	layout: PageLayout = SingleColumnLayout(page)

	# add a Paragraph
	layout.add(Chart(create_plot(), width=Decimal(350), height=Decimal(256)))

	# store
	with open('output_' + SCRIPT_NAME + '.pdf', "wb") as pdf_file_handle:
		PDF.dumps(pdf_file_handle, doc)


if __name__ == "__main__":
	main()

Автоматична розмітка поділок
З блоком коду "ручна розмітка поділок на осях..."

fill_between

savefig

Це PNG-файл, створений скриптом

Дивись також:

https://matplotlib.org/stable/gallery/index.html https://matplotlib.org/stable/users/explain/axes/legend_guide.html https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.legend.html https://mipt-stats.gitlab.io/courses/python/06_matplotlib.html

Last updated