Джейд Картер

Библиотеки Python Часть 2. Практическое применение


Скачать книгу

target="_blank" rel="nofollow" href="#_6.jpg"/>

      Особенности:

      – Используем `go.Surface` для построения трёхмерной поверхности.

      – Параметры `scene` задают подписи к осям в трёхмерном пространстве.

      Интерактивность с помощью виджетов

      Plotly позволяет добавлять интерактивные элементы, такие как слайдеры. Например, график, где пользователь может выбирать диапазон времени.

      ```python

      from plotly.subplots import make_subplots

      years = ['2020', '2021', '2022', '2023']

      values = [500, 700, 800, 600]

      fig = make_subplots(rows=1, cols=1)

      fig.add_trace(go.Scatter(

      x=years,

      y=values,

      mode='lines+markers',

      name='Yearly Data'

      ))

      fig.update_layout(

      title='Интерактивный график с выбором диапазона',

      xaxis=dict(rangeslider=dict(visible=True)), # Добавляем ползунок

      template='plotly_white'

      )

      fig.show()

      ```

      Интерактивность:

      – Ползунок позволяет выбирать диапазон данных на оси X.

      – Это полезно для работы с временными рядами.

      Plotly – универсальный инструмент для создания интерактивных графиков. Благодаря множеству типов графиков и богатым возможностям настройки, библиотека подходит для самых разнообразных задач: от анализа данных до их визуальной презентации. Используя Plotly, вы можете не только создавать красивые графики, но и предоставлять пользователям возможность активно взаимодействовать с ними.

Задачи для практики

      Задача 1: Построение графика изменения температуры

      Описание:

      Имеется набор данных о температуре за неделю:

      – Дни: `['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']`

      – Температура: `[15, 17, 20, 22, 19, 18, 16]`

      Постройте линейный график, отображающий изменение температуры. Подпишите оси и добавьте интерактивность.

      Решение:

      ```python

      import plotly.graph_objects as go

      # Данные

      days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

      temperatures = [15, 17, 20, 22, 19, 18, 16]

      # Построение графика

      fig = go.Figure()

      fig.add_trace(go.Scatter(

      x=days,

      y=temperatures,

      mode='lines+markers',

      name='Temperature',

      line=dict(color='blue', width=2),

      marker=dict(size=8)

      ))

      # Настройка графика

      fig.update_layout(

      title='Изменение температуры за неделю',

      xaxis_title='Дни недели',

      yaxis_title='Температура (°C)',

      template='plotly_white'

      )

      # Показ графика

      fig.show()

      ```

      Задача 2: Построение круговой диаграммы

      Описание:

      Имеется информация о продажах по категориям:

      – Категории: `['Electronics', 'Clothing', 'Groceries', 'Books', 'Furniture']`

      – Продажи: `[1200, 1500, 800, 600, 900]`

      Постройте круговую диаграмму, отображающую доли продаж по категориям.

      Решение:

      ```python

      import plotly.graph_objects as go

      # Данные

      categories = ['Electronics', 'Clothing', 'Groceries', 'Books', 'Furniture']

      sales = [1200, 1500, 800, 600, 900]

      # Построение круговой диаграммы

      fig = go.Figure(data=[go.Pie(

      labels=categories,

      values=sales,

      hole=0.4 # Делает диаграмму "пончиковой"

      )])

      # Настройка графика

      fig.update_layout(

      title='Распределение продаж по категориям',

      template='plotly_white'

      )

      # Показ графика

      fig.show()

      ```