Python LanguageВизуализация данных с помощью Python

Matplotlib

Matplotlib - это математическая библиотека построения шрифтов для Python, которая предоставляет множество различных функций построения графиков.

Документацию Matplotlib можно найти здесь , с SO Docs будет доступна здесь .

Matplotlib предоставляет два различных метода построения, хотя они взаимозаменяемы по большей части:

  • Во-первых, matplotlib предоставляет интерфейс pyplot , прямой и простой в использовании интерфейс, который позволяет строить сложные графики в стиле MATLAB.
  • Во-вторых, matplotlib позволяет пользователю управлять различными аспектами (осями, линиями, тиками и т. Д.) Непосредственно с использованием объектной системы. Это сложнее, но позволяет полностью контролировать весь участок.

Ниже приведен пример использования интерфейса pyplot для построения некоторых сгенерированных данных:

import matplotlib.pyplot as plt

# Generate some data for plotting.
x = [0, 1, 2, 3, 4, 5, 6]
y = [i**2 for i in x]

# Plot the data x, y with some keyword arguments that control the plot style.
# Use two different plot commands to plot both points (scatter) and a line (plot).

plt.scatter(x, y, c='blue', marker='x', s=100) # Create blue markers of shape "x" and size 100
plt.plot(x, y, color='red', linewidth=2) # Create a red line with linewidth 2.

# Add some text to the axes and a title.
plt.xlabel('x data')
plt.ylabel('y data')
plt.title('An example plot')

# Generate the plot and show to the user.
plt.show()

Пример графика

Обратите внимание, что plt.show() как известно, проблематичен в некоторых средах из-за запуска matplotlib.pyplot в интерактивном режиме, и если это так, поведение блокировки может быть явно переопределено путем передачи необязательного аргумента plt.show(block=True) , чтобы облегчить эту проблему.

рожденное море

Seaborn - обертка вокруг Matplotlib, которая упрощает создание общих статистических участков. Список поддерживаемых графиков включает одномерные и двумерные графики распределения, графики регрессии и ряд методов построения категориальных переменных. Полный список участков, предоставляемых Seaborn, находится в их справочной информации по API .

Создание графиков в Seaborn так же просто, как вызов соответствующей функции графического отображения. Ниже приведен пример создания гистограммы, оценки плотности ядра и графика для случайно генерируемых данных.

import numpy as np  # numpy used to create data from plotting
import seaborn as sns  # common form of importing seaborn

# Generate normally distributed data
data = np.random.randn(1000)

# Plot a histogram with both a rugplot and kde graph superimposed
sns.distplot(data, kde=True, rug=True)

Пример distplot

Стиль сюжета также можно контролировать с помощью декларативного синтаксиса.

# Using previously created imports and data.

# Use a dark background with no grid.
sns.set_style('dark')
# Create the plot again
sns.distplot(data, kde=True, rug=True)

Пример стилизации

В качестве дополнительного бонуса, нормальные команды matplotlib все еще могут быть применены к сайтам Seaborn. Вот пример добавления названий осей в ранее созданную гистограмму.

# Using previously created data and style

# Access to matplotlib commands
import matplotlib.pyplot as plt

# Previously created plot. 
sns.distplot(data, kde=True, rug=True)
# Set the axis labels.
plt.xlabel('This is my x-axis')
plt.ylabel('This is my y-axis')

Пример matplotlib

MayaVi

MayaVI - инструмент 3D-визуализации для научных данных. Он использует набор инструментов визуализации или VTK под капотом. Используя мощность VTK , MayaVI способен производить множество 3-мерных графиков и рисунков. Он доступен как отдельное программное приложение, а также как библиотека. Подобно Matplotlib , эта библиотека предоставляет интерфейс объектно-ориентированного программирования для создания графиков без необходимости знать о VTK .

MayaVI доступен только в серии Python 2.7x! Ожидается, что он скоро появится в серии Python 3-x! (Хотя некоторый успех замечен при использовании его зависимостей в Python 3)

Документацию можно найти здесь . Некоторые примеры галереи найдены здесь

Вот образец, созданный с использованием MayaVI из документации.

# Author: Gael Varoquaux <gael.varoquaux@normalesup.org>
# Copyright (c) 2007, Enthought, Inc.
# License: BSD Style.


from numpy import sin, cos, mgrid, pi, sqrt
from mayavi import mlab

mlab.figure(fgcolor=(0, 0, 0), bgcolor=(1, 1, 1))
u, v = mgrid[- 0.035:pi:0.01, - 0.035:pi:0.01]

X = 2 / 3. * (cos(u) * cos(2 * v)
        + sqrt(2) * sin(u) * cos(v)) * cos(u) / (sqrt(2) -
                                                 sin(2 * u) * sin(3 * v))
Y = 2 / 3. * (cos(u) * sin(2 * v) -
        sqrt(2) * sin(u) * sin(v)) * cos(u) / (sqrt(2)
        - sin(2 * u) * sin(3 * v))
Z = -sqrt(2) * cos(u) * cos(u) / (sqrt(2) - sin(2 * u) * sin(3 * v))
S = sin(u)

mlab.mesh(X, Y, Z, scalars=S, colormap='YlGnBu', )

# Nice view from the front
mlab.view(.0, - 5.0, 4)
mlab.show()

образ

Plotly

Plotly - современная платформа для построения графиков и визуализации данных. Полезно для создания различных графиков, особенно для наук о данных, Plotly доступен в виде библиотеки для Python , R , JavaScript , Julia и MATLAB . Он также может использоваться как веб-приложение с этими языками.

Пользователи могут установить библиотеку plotly и использовать ее в автономном режиме после аутентификации пользователей. Установка этой библиотеки и в автономном режиме аутентификации дается здесь . Кроме того, графики могут быть сделаны и в ноутбуках Jupyter .

Для использования этой библиотеки требуется учетная запись с именем пользователя и паролем. Это дает рабочему пространству возможность сохранять графики и данные в облаке.

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

Для документации и примеров можно перейти сюда

Примерный пример из примеров документации:

import plotly.graph_objs as go
import plotly as ply

# Create random data with numpy
import numpy as np

N = 100
random_x = np.linspace(0, 1, N)
random_y0 = np.random.randn(N)+5
random_y1 = np.random.randn(N)
random_y2 = np.random.randn(N)-5

# Create traces
trace0 = go.Scatter(
    x = random_x,
y = random_y0,
mode = 'lines',
name = 'lines'
)
trace1 = go.Scatter(
    x = random_x,
    y = random_y1,
    mode = 'lines+markers',
    name = 'lines+markers'
)
trace2 = go.Scatter(
    x = random_x,
    y = random_y2,
    mode = 'markers',
    name = 'markers'
)
data = [trace0, trace1, trace2]

ply.offline.plot(data, filename='line-mode')

участок