<jupyter_start><jupyter_text>Основы Matplotlib--- Рисунки и графики. Основная идея matplotlib Все Графики(axes), которые мы строим в matplotlib,"живут" внутри объекта Рисунк (Figure). То естьFigure (Рисунок) являеться общим окном, в котором можно построить 1 или несколько графиков (axes).Axes- Это сам график. У которого есть оси, заголовок, легенда и т.д.![%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5.png](attachment:%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5.png)<jupyter_code>%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('seaborn-whitegrid') # стиль графиков 

fig, ax = plt.subplots()  # создаём Рисунок fig и 1 график на нём ax, plt.subplots(1,1,1) 
fig
fig, axes = plt.subplots(2, 2) # рисунок будет расчерчен сеткой 2 х 2 и в каждую ячейку мы вставляем график
axes # матрица из 4-х графиков
# добавляем графики по отдельности 
figure = plt.figure()

# figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None)
# num - номер рисунка, figsize - (float, float) ширина и высота в дюймах, dpi - разрешение, facecolor -цвет фона,
# edgecolor - цвет краёв 

ax1 = figure.add_subplot(2, 2, 1) # расчервиваем рисунок на 4 части и вставляем график в 1 ячейку 
ax2 = figure.add_subplot(2, 2, 2) # вставляем график во 2 ячейку 
ax3 = figure.add_subplot(2, 2, 3) # вставляем график в 3 ячейку 
# 4 соотвественно пустая 
fig, ax = plt.subplots()

x = [-3, -2, -1, 0, 1, 2, 3]
y = [9, 4, 1, 0, 1, 4, 9]

ax.plot(x, y) # == plt.plot(x,y) если график 1
fig, ax = plt.subplots()

x = [-3, -2, -1, 0, 1, 2, 3]
y = [9, 4, 1, 0, 1, 4, 9]
x_abs = [3, 2, 1, 0, 1, 2, 3]

ax.plot(x, y)
ax.plot(x, x_abs)
fig, axes = plt.subplots(2, 2)

x = [-3, -2, -1, 0, 1, 2, 3]
y = [9, 4, 1, 0, 1, 4, 9]

axes[1, 0].plot(x, y)

figure = plt.figure()

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

ax3.plot(x, y)
ax1.plot(x,x_abs)
figure
# plt.show()<jupyter_output><empty_output><jupyter_text>Цвет линий и стили<jupyter_code>import numpy as np

fig, ax = plt.subplots()

x = np.array([-3, -2, -1, 0.1, 1, 2, 3])
y = np.array([9, 4, 1, 0.1, 1, 4, 9])

ax.plot(x, y)

ax.plot(x, np.sin(x), color=(1.0,0.2,0.3),linestyle='-')

ax.plot(x, x + 5, color='blue', linestyle='--')

ax.plot(x, x + 3, color='g',linestyle=':')    

ax.plot(x, np.cos(x), color='0.75',linestyle='-.')

ax.plot(x, x, color='#FFDD44',linestyle='--')
fig, ax = plt.subplots()

x = np.array([-3, -2, -1, 0.1, 1, 2, 3])
y = np.array([9, 4, 1, 0.1, 1, 4, 9])

ax.plot(x, y, marker='o')

ax.plot(0.5 * x, y, marker='^')

ax.plot(2 * x, y, marker='*')
fig, ax = plt.subplots()

x = np.array([-3, -2, -1, 0.1, 1, 2, 3])
y = np.array([9, 4, 1, 0.1, 1, 4, 9])

ax.plot(x, y, color='red', linestyle='--', marker='o', alpha=0.2) # c='red', ls='--'

ax.plot(0.5 * x, y,'*--g', linewidth=2.5)<jupyter_output><empty_output><jupyter_text>Лимиты осей<jupyter_code>fig, ax = plt.subplots()

x = np.array([-3, -2, -1, 0.1, 1, 2, 3])
y = np.array([9, 4, 1, 0.1, 1, 4, 9])

ax.plot(x, y, color='red', linestyle='-', marker='o')

ax.set_xlim(0, 11)
ax.set_ylim(-5, 10)<jupyter_output><empty_output><jupyter_text>Подписи и метки<jupyter_code>fig, ax = plt.subplots()

x = np.array([-3, -2, -1, 0.1, 1, 2, 3])
y = np.array([9, 4, 1, 0.1, 1, 4, 9])

ax.plot(x, y, color='red', linestyle='-', marker='o', label='y=x^2')

ax.plot(0.5 * x, y, color='green', linestyle='-', marker='*', label='y=0.5 * x^2')

ax.set_title('Заголовок нашего графика', fontsize=20)

ax.set_xlabel("Ось х")
ax.set_ylabel("Ось у")

ax.legend(loc='lower left') 
#plt.cla() очищаем график

# plt.clf()  очищаем рисунок 

fig, ax = plt.subplots()

x = np.array([-3, -2, -1, 0.1, 1, 2, 3])
y = np.array([9, 4, 1, 0.1, 1, 4, 9])

ax.plot(x, y, color='red', linestyle='-', marker='o', label='y=x^2')

ax.set_xticks(np.arange(-3, 3, 0.5))
ax.set_yticks(np.arange(0, 10, 3))

ax.spines['right'].set_visible(False)   

ax.grid(color = 'blue', linewidth = 2, linestyle = '--') 
# чтобы убрать сетку ax.grid()<jupyter_output><empty_output><jupyter_text>Сохраняем в картинку и открываем картинку<jupyter_code>fig.savefig('./figure1.png')

import matplotlib.image as mpimg

img = mpimg.imread('./figure1.png')
plt.grid()
plt.imshow(img)<jupyter_output><empty_output><jupyter_text>Виды графиков<jupyter_code># scatter plot

fig, ax = plt.subplots()

N = 50

x = np.random.rand(N)
y = np.random.rand(N)

colors = np.random.rand(N)
area = (30 * np.random.rand(N))**2

ax.scatter(x, y, s=area, c=colors, alpha=0.5, marker='*', cmap='viridis')

# 3D scatter plot

from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure(figsize=(10,6))

ax = fig.add_subplot(111, projection='3d')

ax.scatter(x, y, s=area, c=colors, alpha=0.5, marker='*', cmap='viridis')

#bars

fig, axes = plt.subplots(1, 2)

axes[0].bar([1,2,3],[3,4,5], color='red',  label='vertical bar', alpha=0.8)

axes[1].barh([0.5,1,2.5],[0,1,2])

axes[0].legend()
# Stacked bar chart

fig = plt.figure(figsize=(14,10))
rect1 = plt.bar(np.arange(5), np.arange(5)**2,
                width=0.5, color='lightblue')

rect2 = plt.bar(np.arange(5),  np.arange(5) * 2,
                width=0.5, color='#1f77b4')

plt.legend((rect1[0], rect2[0]), ('Support', 'Freedom'))
# hist и boxplot
fig, ax = plt.subplots()

np.random.seed(19680801)

mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)

ax.hist(x, 50, density=True, facecolor='g', alpha=0.75)

user_1 = [10, 3, 15, 21, 17, 14]
user_2 = [5, 13, 10, 7, 9, 12]
data = [user_1, user_2]
fig = plt.figure(figsize =(8, 6)) 
  

ax = fig.add_axes([0, 0, 1, 1]) 
  

bp = ax.boxplot(data) 
  

plt.xticks([1,2],['user_1','user_2'])
# Area Chart

fig, ax = plt.subplots()

x = np.arange(0,100,1)
y = x * 2
ax.fill_between( x, y, color="skyblue", alpha=0.2)
ax.plot(x, y, color="Slateblue", alpha=0.6)
# Pie Chart

fig, ax = plt.subplots(figsize=(8,8))

labels = 'Jan', 'Feb', 'March', 'April', 'May', 'June'
user_1 = [10, 3, 15, 21, 17, 14]

ax.pie(user_1, labels=labels, explode=(0.07, 0, 0, 0, 0, 0), autopct='%1.1f%%', startangle=130, shadow=True)
#Time Series Plot
import pandas as pd 

plt.figure(figsize=(8,6))
ts = pd.Series(np.random.randn(100), index = pd.date_range( 
                                '1/1/2020', periods = 100)) 

ts = ts.cumsum() 
ts.plot() 

# 3D Surface

import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np


fig = plt.figure()
ax = fig.gca(projection='3d')

X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)

surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm,
                       linewidth=0, antialiased=False)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.21115419027736357, 'fraction_numerical': 0.06993736951983298, 'mean_word_length': 4.0965045592705165, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 25, 'https://': 0, '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': '6', 'dir': 'jupyter-structured-clean-dedup', 'id': '108328', 'license': 'MIT', 'n_tokens_mistral': 3500, 'n_tokens_neox': 3313, 'n_words': 729, 'path': 'Matplotlib_start.ipynb', 'repo_name': 'pylounge/pylounge-data-scientist-starter-pack', 'size': '6706'}