<jupyter_start><jupyter_text>Построение простых графиков* ЛинииМетод построения линии очень прост:есть массив абсцис (x)есть массив ординат (y)элементы с одинаковым индексом в этих массивах - это координаты точек на плоскости;последовательные точки соединяются линией.<jupyter_code>plt.plot((1,2,3), (4,7,2))
plt.show()<jupyter_output><empty_output><jupyter_text>* График множества точек<jupyter_code>plt.scatter([0,1,2,3], [5,2,4,1])
plt.scatter([1,2,3,4], [1,2,3,4])
plt.show()<jupyter_output><empty_output><jupyter_text>* Гистограммы<jupyter_code>plt.bar([1,2,3], [4,1,2])
plt.barh([1,2,3], [4,1,2])
plt.bar([1,2,3], [4,1,2], width=0.2)
plt.bar([2,3,5], [2,1,3])<jupyter_output><empty_output><jupyter_text>* Круговые диаграммы<jupyter_code>plt.pie([10,40,30])<jupyter_output><empty_output><jupyter_text>* Ящик с усами Ящик с усами является диаграммой размаха и служит для отображения случайной величины и несет в себе достаточно много информации. Во первых, внутри ящика оранжевой линией отмечена медиана элементов массив. Усы - максимальное и минимальное значение в наборе данных.<jupyter_code>plt.boxplot([1, 5, 7, 4, 6, 10])<jupyter_output><empty_output><jupyter_text>Иногда на графике, рядом с усами появляются одна или две точки. Такие точки обозначают выбросы - значения которые находятся очень далеко от статистически значимой части данных:<jupyter_code>plt.boxplot([[1, 5, 7, 4, 6, 10, 15],
             [-2, 5, 7, 4, 6, 10, 15],
             [-4, 5, 7, 4, 6, 10]])
plt.show()<jupyter_output>/usr/local/lib/python3.7/dist-packages/numpy/core/_asarray.py:83: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray
  return array(a, dtype, copy=False, order=order)<jupyter_text>Команды для проверки библиотеки<jupyter_code>import matplotlib as lib

print('Версия бибилотеки: ' + str(lib.__version__))
print('Версия бэкенда: ' + str(lib.get_backend()))
lib.use('nbagg') # nbagg is backend name<jupyter_output><empty_output><jupyter_text>Подключать бэк нужно перед подключением pyplot<jupyter_code>import matplotlib.pyplot as plt

plt.plot([0, 1, 2, 3], [0, 3, 1, 2])
plt.show()<jupyter_output><empty_output><jupyter_text>Компоненты библиотеки Создаем фигуру, затем добалвяем к фигуре область Axes (можно еще использовать fig.add_axes). 111 - это параметр, который значит, что у нас первая строка, первый столбец и первая и единственная ячейка на фигуре<jupyter_code>fig = plt.figure()
ax = fig.add_subplot(111)
plt.show()<jupyter_output><empty_output><jupyter_text>Рассмотрим обалсти fig, ax<jupyter_code>fig = plt.figure()
ax = fig.add_subplot(111)

fig.set(facecolor = 'orange')
ax.set(facecolor='blue')
plt.show()
fig = plt.figure()
ax = fig.add_subplot(111)

ax.set_xlim([-10,10])
ax.set_ylim([1,4])
ax.set_title('Example')
ax.set_xlabel('X')
ax.set_ylabel('Y')

plt.show()<jupyter_output><empty_output><jupyter_text>Отображение данных на графике<jupyter_code>fig = plt.figure()
ax = fig.add_subplot(111)

ax.plot([0, 1, 2, 3, 4], [0, 6, 7, 15, 19])
ax.scatter([0, 1, 2, 3, 4], [1, 3, 8, 12, 27], color='yellow', marker='*')

plt.show()<jupyter_output><empty_output><jupyter_text>Размещение нескольких графиков на фигуреВ этом примере, так же как и раньше, мы сначала создали область Figure, а затем с помощью команды fig.add_subplot() начали добавлять, одну за другой область Axes (ax_1, ax_2, ax_3, ax_4).Теперь давайте немного разберемся с тем что делает метод add_subplot(). А делает он следующее, разбивает Figure на указанное количество строк и столбцов. После такого разбиения Figure можно представить как таблицу (или координатную сетку). Затем область Axes помещается в указанную ячейку. Для всего этого add_subplot() необходимо всего три числа, которые мы и передаем ему в качестве параметров:* первое - количество строк;* второе - количество столбцов* третье - индекс ячейки.Индексирование полученных ячеек начинается с левого верхнего угла, выполняется построчно слева-направо и заканчивается в правом нижнем углу<jupyter_code>fig = plt.figure()

ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax4 = fig.add_subplot(2,2,4)

plt.show()
fig = plt.figure()

ax1 = fig.add_subplot(3,3,1)
ax2 = fig.add_subplot(3,2,2)
ax3 = fig.add_subplot(3,3,9)

plt.show()<jupyter_output><empty_output><jupyter_text>Метод subplots()<jupyter_code>fig, axes = plt.subplots(nrows=2, ncols=2)

axes[0,0].set(title='first')
axes[0,1].set(title='second')
axes[1,0].set(title='third')
axes[1,1].set(title='fourth')

plt.show()<jupyter_output><empty_output><jupyter_text>Построение графиков по данным<jupyter_code>fig, ax = plt.subplots()

x1, y1 = 10*np.random.rand(100), 10*np.random.rand(100)
x2, y2 = 10*np.random.rand(100), 10*np.random.rand(100)
ax.scatter(x1, y1, c='blue')
ax.scatter(x2, y2, c='red')

plt.show()
import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots()

x1 = np.linspace(0, 10, 30)
y1 = np.random.beta(0.1, 0.6, size = 30)
x2 = np.linspace(11, 20, 30)
y2 = np.random.gamma(shape = 0.3, scale = 1.1, size = 30)
x3 = np.linspace(21, 30, 30)
y3 =np.random.pareto(3.5, size = 30)

#  Данные в виде точек:
ax.scatter(x1, y1)
ax.scatter(x2, y2)
ax.scatter(x3, y3)

#  Данные в виде линий:
ax.plot(x1, y1 + 3)
ax.plot(x2, y2 + 3)
ax.plot(x3, y3 + 3)

ax.set(title='Бетта, Гамма и Паретто распределения')
    
plt.show()<jupyter_output><empty_output><jupyter_text>Остальное: https://pyprog.pro/mpl<jupyter_code><jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.14133333333333334, 'fraction_numerical': 0.047466666666666664, 'mean_word_length': 6.287564766839378, 'pattern_counts': {'":': 0, '<': 60, '<?xml version=': 0, '>': 60, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '15', 'dir': 'jupyter-structured-clean-dedup', 'id': '158877', 'license': 'MIT', 'n_tokens_mistral': 2626, 'n_tokens_neox': 2697, 'n_words': 527, 'path': 'Instruments/MatPlotlib.ipynb', 'repo_name': 'SunnyientDev/kaggle_contests', 'size': '5625'}