<jupyter_start><jupyter_text>[Шпаргалка по визуализации данных в Python с помощью Plotly](https://habr.com/ru/post/502958/)  Импорт Для статического отображения графиков, необходимо установить `plotly orca`, вариант установки:```!pip install plotly>=4.7.1 > /dev/null!wget https://github.com/plotly/orca/releases/download/v1.2.1/orca-1.2.1-x86_64.AppImage -O /usr/local/bin/orca!chmod +x /usr/local/bin/orca!apt-get install xvfb libgtk2.0-0 libgconf-2-4 > /dev/null```<jupyter_code>import numpy as np
import pandas as pd

import plotly
import plotly.graph_objs as go
import plotly.express as px
from plotly.subplots import make_subplots<jupyter_output><empty_output><jupyter_text>Общие настройки`show_format = '' ` - интерактивный режим`show_format = 'svg'` - статический режим<jupyter_code>show_format = 'svg'<jupyter_output><empty_output><jupyter_text>Линейный график<jupyter_code>x = np.arange(0, 5, 0.1)

def f(x):
    return x**2

px.scatter(x=x, y=f(x)).show(show_format)<jupyter_output><empty_output><jupyter_text>Более читабельно и правильно записать тот же в код в следующем виде:<jupyter_code>x = np.arange(0, 5, 0.1)

def f(x):
    return x**2

fig = px.scatter(x=x, y=f(x))    
fig.show(show_format)<jupyter_output><empty_output><jupyter_text>В отличие от Matplotlib отдельные объекты осей не создаются.<jupyter_code>fig = go.Figure()
fig.show(show_format)
go.Scatter(x=x, y=f(x))
fig = go.Figure()
fig.add_trace(go.Scatter(x=x, y=f(x)))
fig.show(show_format)
fig = go.Figure()
fig.add_trace(go.Scatter(x=x, y=f(x)))
fig.add_trace(go.Scatter(x=x, y=x))
fig.show(show_format)<jupyter_output><empty_output><jupyter_text>Подписи графиков К сожалению, это имеет свои ограничения, как можно заметить подсказка при наведении на график отображается в «сыром» виде, а не в LATEX.Победить это можно, если использовать HTML разметку в подписях. В данном примере я буду использовать тег sup. Так же заметьте, что шрифт для LATEX и HTML отличается начертанием.<jupyter_code>fig = go.Figure()
fig.add_trace(go.Scatter(x=x, y=f(x), name='f(x)=x<sup>2</sup>'))
fig.add_trace(go.Scatter(x=x, y=x, name='$$g(x)=x$$'))
fig.show(show_format)<jupyter_output><empty_output><jupyter_text>Чтобы легенда не наезжала на график<jupyter_code>fig = go.Figure()
fig.add_trace(go.Scatter(x=x, y=f(x), name='f(x)=x<sup>2</sup>'))
fig.add_trace(go.Scatter(x=x, y=x, name='$$g(x)=x$$'))
fig.update_layout(legend_orientation="h")
fig.show(show_format)<jupyter_output><empty_output><jupyter_text>Зададим везде нулевые отступы fig.update_layout(margin=dict(l=0, r=0, t=0, b=0))<jupyter_code>fig = go.Figure()
fig.add_trace(go.Scatter(x=x, y=f(x), name='f(x)=x<sup>2</sup>'))
fig.add_trace(go.Scatter(x=x, y=x, name='$$g(x)=x$$'))
fig.update_layout(legend_orientation="h",
                  margin=dict(l=0, r=0, t=0, b=0))
fig.show(show_format)<jupyter_output><empty_output><jupyter_text>Центрирование `legend=dict(x=.5, xanchor="center")`<jupyter_code>fig = go.Figure()
fig.add_trace(go.Scatter(x=x, y=f(x), name='f(x)=x<sup>2</sup>'))
fig.add_trace(go.Scatter(x=x, y=x, name='$$g(x)=x$$'))
fig.update_layout(legend_orientation="h",
                  legend=dict(x=.5, xanchor="center"),
                  margin=dict(l=0, r=0, t=0, b=0))
fig.show(show_format)<jupyter_output><empty_output><jupyter_text>Выделим точки<jupyter_code>fig = go.Figure()
fig.add_trace(go.Scatter(x=x, y=f(x), name='f(x)=x<sup>2</sup>',
                         mode='lines+markers'))
fig.add_trace(go.Scatter(x=x, y=x, name='$$g(x)=x$$',
                         mode='markers'))
fig.update_layout(legend_orientation="h",
                  legend=dict(x=.5, xanchor="center"),
                  margin=dict(l=0, r=0, t=0, b=0))
fig.show(show_format)<jupyter_output><empty_output><jupyter_text>Вывод информации только о коорданатах точек, без названия графика<jupyter_code>fig = go.Figure()
fig.add_trace(go.Scatter(x=x, y=f(x), name='f(x)=x<sup>2</sup>',
              mode='lines+markers'))
fig.add_trace(go.Scatter(x=x, y=x, name='$$g(x)=x$$', mode='markers'))
fig.update_layout(legend_orientation="h",
                  legend=dict(x=0.5, xanchor="center"),
                  margin=dict(l=0, r=0, t=0, b=0))
fig.update_traces(hoverinfo='x+y')
fig.show(show_format)<jupyter_output><empty_output><jupyter_text>Расширение шаблона подсказки.<jupyter_code>fig = go.Figure()
fig.add_trace(go.Scatter(x=x, y=f(x), name='f(x)=x<sup>2</sup>',
                         mode='lines+markers'))
fig.add_trace(go.Scatter(x=x, y=x, name='$$g(x)=x$$', mode='markers'))
fig.update_layout(legend_orientation="h",
                  legend=dict(x=0.5, xanchor="center"),
                  margin=dict(l=0, r=0, t=0, b=0))
fig.update_traces(hoverinfo="all", 
                  hovertemplate="Аргумет: %{x}<br>Функция: %{y}")
fig.show(show_format)<jupyter_output><empty_output><jupyter_text>Изменение формата маркеров<jupyter_code>fig = go.Figure()
fig.add_trace(go.Scatter(x=x, y=f(x), name='f(x)=x<sup>2</sup>',
                         mode='lines+markers'))
fig.add_trace(go.Scatter(x=x, y=x, name='g(x)=x', mode='markers',
                         marker=dict(color='LightSkyBlue', size=20, 
                                     line=dict(color='MediumPurple',
                                               width=3))))
fig.update_layout(legend_orientation="h",
                  legend=dict(x=0.5, xanchor="center"),
                  hovermode="x",
                  margin=dict(l=0, r=0, t=0, b=0))
fig.update_traces(hoverinfo="all", 
                  hovertemplate="Аргумент: %{x}<br>Функция: %{y}")
fig.show(show_format)<jupyter_output><empty_output><jupyter_text>Определение границ области демонстрации графика<jupyter_code>fig = go.Figure()
fig.update_yaxes(range=[-0.5, 1.5])
fig.update_xaxes(range=[-0.5, 1.5])
fig.add_trace(go.Scatter(x=x, y=f(x), name='f(x)=x<sup>2</sup>',
                         mode='lines+markers'))
fig.add_trace(go.Scatter(x=x, y=x, name='g(x)=x', 
                         mode='markers',
                         marker_symbol='star',
                         marker=dict(color='MediumPurple',
                                     size=20,
                                     line=dict(color='LightSkyBlue',
                                               width=3))))
fig.update_layout(legend_orientation='h',
                  legend=dict(x=0.5, xanchor='center'),
                  hovermode='x',
                  margin=dict(l=0, r=0, t=0, b=0))
fig.update_traces(hoverinfo='all', 
                  hovertemplate='Аргумент: %{x}<br>Функция: %{y}')
fig.show(show_format)<jupyter_output><empty_output><jupyter_text>Добавление осевых линий<jupyter_code>fig = go.Figure()
fig.update_yaxes(range=[-0.5, 1.5], zeroline=True, zerolinewidth=2, 
                 zerolinecolor='DarkRed')
fig.update_xaxes(range=[-0.5, 1.5], zeroline=True, zerolinewidth=2,
                 zerolinecolor='DarkRed')
fig.add_trace(go.Scatter(x=x, y=f(x), name='f(x)=x<sup>2</sup>',
                         mode='lines+markers'))
fig.add_trace(go.Scatter(x=x, y=x, name='g(x)=x', mode='markers',
                         marker_symbol='circle-x',
                         marker=dict(color='MidNightBlue', size=20,
                                     line=dict(color='MediumPurple',
                                               width=3))))
fig.update_layout(legend_orientation='h', hovermode='x',
                  legend=dict(x=0.5, xanchor='center'),
                  margin=dict(l=0, r=0, t=0, b=0))
fig.update_traces(hoverinfo='all',
                  hovertemplate='Агрумент: %{x}<br> Функция: %{y}')
fig.show(show_format)<jupyter_output><empty_output><jupyter_text>Добавление скрытых по умолчанию функций<jupyter_code>def s(x):
    return np.sin(x)

def c(x):
    return np.cos(x)

def t(x):
    return np.tan(x)

fig = go.Figure()    
fig.update_yaxes(range=[-0.5, 1.5], zeroline=True, zerolinewidth=3,
                 zerolinecolor='DarkRed')
fig.update_xaxes(range=[-0.5, 1.5], zeroline=True, zerolinewidth=3,
                 zerolinecolor='DarkRed')

fig.add_trace(go.Scatter(visible='legendonly', x=x, y=s(x), name='s(x)=six(x)'))
fig.add_trace(go.Scatter(visible='legendonly', x=x, y=c(x), name='c(x)=cos(x)'))
fig.add_trace(go.Scatter(visible='legendonly', x=x, y=t(x), name='t(x)=tan(x)'))

fig.add_trace(go.Scatter(x=x, y=f(x), name='f(x)=x<sup>2</sup>', 
                         mode='lines+markers'))
fig.add_trace(go.Scatter(x=x, y=x, name='g(x)=x', mode='markers',
                         marker_symbol='x-dot',
                         marker=dict(color='DarkSlateGrey', size=20,
                                     line=dict(color='Red', width=3))))
fig.update_layout(legend_orientation='h', hovermode='x',
                  legend=dict(x=0.5, xanchor='center'),
                  margin=dict(l=0, r=0, t=0, b=0))
fig.update_traces(hoverinfo='all',
                  hovertemplate='Аргумент: %{x}<br>Функция: %{y}')
fig.show(show_format)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1775742684833594, 'fraction_numerical': 0.015635470180924725, 'mean_word_length': 3.566547679755227, 'pattern_counts': {'":': 0, '<': 92, '<?xml version=': 0, '>': 95, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 12, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '16', 'dir': 'jupyter-structured-clean-dedup', 'id': '192223', 'license': 'MIT', 'n_tokens_mistral': 3642, 'n_tokens_neox': 3613, 'n_words': 463, 'path': 'plotly/plotly_1.ipynb', 'repo_name': 'katsuba-mikhail/visualization', 'size': '8954'}