La herramienta de visualización de python big man-Altair

  • Este artículo comparte otra herramienta de visualización interactiva de Python, Altair . La capa inferior de Altair es Vega-Lite (basada en una gramática de visualización interactiva simple , A Grammar of Interactive Graphics), con efectos como:

  • El autor de Altair es Jake Vanderplas. Es un gran hombre. Anteriormente fue Decano del Instituto de Ciencias Físicas de la Universidad de Washington eScience, y ahora es Ingeniero de Software en Google. Es un apasionado de Python, Astronomía y Datos. Ciencia; también es un entusiasta activo del código abierto.Puede ver su charla en conferencias de PyData a lo largo de los años. Además de Altair, ha hecho muchas contribuciones a bibliotecas famosas de Python como Scikit-Learn, Scipy, Matplotlib, IPython, etc .; autor de dos libros de alto nivel Python Data Science Handbook y A Whirlwind Tour of Python.

  • Las herramientas interactivas de Python presentadas anteriormente incluyen Pygal y gemelos .

Tabla de contenido

1. Inicio rápido de los gráficos básicos de Altair

pip instalar altair 

Dibujo de Altair paso a paso

 El script Altair de Python se convierte a JSON

2. Inicio rápido de los gráficos complejos de Altair

configurar los métodos _ * () para personalizar los atributos de la imagen

La selección, la condición y el enlace hacen que los gráficos de altair interactúen mejor con el mouse

Layer, HConcat, VConcat, Repeat, Facet ayudan a altair a crear gráficos compuestos fácilmente

Gráficos compuestos personalizados Chart.resolve_scale (), Chart.resolve_axis () y Chart.resolve_legend ()

3. Uso compartido de demostraciones basado en Altair

Un caso en el sitio web oficial sobre el clima.

Sitio web oficial: https://altair-viz.github.io/index.html 

 


1. Inicio rápido de los gráficos básicos de Altair

Este resumen presenta cómo dibujar rápidamente gráficos básicos comunes , como "barra", "círculo", "cuadrado", "marca", "línea", * "área", "punto", "regla", "forma geográfica", y "texto", etc.

pip instalar altair 

pip install altair vega_datasets -i https://pypi.tuna.tsinghua.edu.cn/simple#国内源加速安装

Dibujo de Altair paso a paso

  • preparación de datos

El conjunto de datos de iris iris todavía se utiliza. Para la introducción del conjunto de datos, consulte: Visualización de Python | matplotlib10-drawing scatter plots

import seaborn as sns
pd_iris = sns.load_dataset("iris")
pd_iris.head(n=5)

  • Dibujo rapido

#快速绘图
import altair as alt
import pandas as pd

alt.Chart(pd_iris).mark_point().encode(x='sepal_length',
                                       y='sepal_width',
                                       color='species')

  • División de pasos de dibujo 

Desde el código de alt. Chart (pd_iris). Mark_ punto (). Encode (x = 'sepal_length', Y = 'sepal_width', color = 'especie'), podemos ver que Altair dibujo principalmente utiliza el gráfico () método y el método mark_ * () y el método encode () .

El método Chart () convierte los datos en un objeto altair.vegalite.v4.api.Chart

La altura, el ancho, el color de fondo, etc. de la imagen se pueden establecer entre corchetes. Para obtener más información, consulte: https://altair-viz.github.io/user_guide/generated/toplevel/altair.Chart.html?highlight = gráfico

El método mark _ * () especifica los gráficos que se mostrarán, como dibujar un gráfico de dispersión mark_point () 

El método mark _ * () establece atributos gráficos, como color, tamaño, etc.

Se pueden establecer varios atributos de los gráficos que se mostrarán entre paréntesis. Tome mark_point () para establecer el color del punto como ejemplo de la siguiente manera.

Para ver otros parámetros detallados, consulte: https://altair-viz.github.io/user_guide/generated/toplevel/altair.Chart.html?highlight=mark_point#altair.Chart.mark_point 

El método encode () establece el mapeo del eje de coordenadas 

Parámetros detallados: https://altair-viz.github.io/user_guide/generated/toplevel/altair.Chart.html?highlight=encode#altair.Chart.encode

 El script Altair de Python se convierte a JSON

secuencia de comandos de Python

import altair as alt
import pandas as pd

data = pd.DataFrame({'x': ['A', 'B', 'C', 'D'], 'y': [1, 2, 1, 2]})
alt.Chart(data).mark_bar().encode(
    x='x',
    y='y',
)

Haga clic para obtener el script json

{
  "config": {"view": {"continuousWidth": 400, "continuousHeight": 300}},
  "data": {"name": "data-39e740acccd9d827d4364cdbd6d37176"},
  "mark": "bar",
  "encoding": {
    "x": {"type": "nominal", "field": "x"},
    "y": {"type": "quantitative", "field": "y"}
  },
  "$schema": "https://vega.github.io/schema/vega-lite/v4.8.1.json",
  "datasets": {
    "data-39e740acccd9d827d4364cdbd6d37176": [
      {"x": "A", "y": 1},
      {"x": "B", "y": 2},
      {"x": "C", "y": 1},
      {"x": "D", "y": 2}
    ]
  }
}

2. Inicio rápido de los gráficos complejos de Altair

Esta sección presenta brevemente gráficos más complejos, como títulos de diagramas de facetas personalizados, leyendas, métodos configure _ * () , métodos selection () binding _ * () ,方法condition()方法、

configurar los métodos _ * () para personalizar los atributos de la imagen

El método configure_header () personaliza el encabezado

import altair as alt
from vega_datasets import data#vega_datasets为altair的一个内置数据集模块

source = data.cars.url

chart = alt.Chart(source).mark_point().encode(x='Horsepower:Q',
                                              y='Miles_per_Gallon:Q',
                                              color='Origin:N',
                                              column='Origin:N').properties(
                                                  width=180, height=180)
chart.configure_header(titleColor='green',
                       titleFontSize=14,
                       labelColor='red',
                       labelFontSize=14)

Personalice la leyenda del  método configure_legend ()

import altair as alt
from vega_datasets import data

source = data.cars.url

chart = alt.Chart(source).mark_point().encode(x='Horsepower:Q',
                                              y='Miles_per_Gallon:Q',
                                              color='Origin:N')

chart.configure_legend(strokeColor='gray',
                       fillColor='#EEEEEE',
                       padding=10,
                       cornerRadius=10,
                       orient='top-right')

Para obtener más introducción al método de configuración , consulte: https://altair-viz.github.io/user_guide/configuration.html

La selección, la condición y el enlace hacen que los gráficos de altair interactúen mejor con el mouse

Los métodos de selección (), condición () y enlace () se utilizan principalmente aquí , una breve introducción, consulte para obtener más detalles: https://altair-viz.github.io/user_guide/interactions.html

  • método de selección ()

El ratón puede capturar ligeramente una determinada parte del gráfico.

  • método condition ()

Haga que la parte capturada por el mouse se ilumine y la parte que no se captura se atenúe.

  • método de enlace _ * ()

El efecto es el siguiente:

Layer, HConcat, VConcat, Repeat, Facet ayudan a altair a crear gráficos compuestos fácilmente

  • hconcat水平方向拼图

import altair as alt
from vega_datasets import data

iris = data.iris.url

chart1 = alt.Chart(iris).mark_point().encode(x='petalLength:Q',
                                             y='petalWidth:Q',
                                             color='species:N').properties(
                                                 height=300, width=300)

chart2 = alt.Chart(iris).mark_bar().encode(x='count()',
                                           y=alt.Y('petalWidth:Q',
                                                   bin=alt.Bin(maxbins=30)),
                                           color='species:N').properties(
                                               height=300, width=100)

chart1 | chart2

alt.hconcat(chart1, chart2)

  • rompecabezas vertical vconcat

 

  • LayerChart图层叠加 

  • RepeatChart dibuja gráficos similares

from vega_datasets import data

iris = data.iris.url

base = alt.Chart().mark_point().encode(color='species:N').properties(
    width=200, height=200).interactive()

chart = alt.vconcat(data=iris)
for y_encoding in ['petalLength:Q', 'petalWidth:Q']:
    row = alt.hconcat()
    for x_encoding in ['sepalLength:Q', 'sepalWidth:Q']:
        row |= base.encode(x=x_encoding, y=y_encoding)
    chart &= row
chart

  • Faceta de gráficos FacetChart

import altair as alt
from altair.expr import datum
from vega_datasets import data

iris = data.iris.url

base = alt.Chart(iris).mark_point().encode(x='petalLength:Q',
                                           y='petalWidth:Q',
                                           color='species:N').properties(
                                               width=160, height=160)

chart = alt.hconcat()
for species in ['setosa', 'versicolor', 'virginica']:
    chart |= base.transform_filter(datum.species == species)
chart

Gráficos compuestos personalizados Chart.resolve_scale (), Chart.resolve_axis () y Chart.resolve_legend ()

Por ejemplo, use resolve_scale () para usar ruedas de color para dos gráficos respectivamente.

from vega_datasets import data

source = data.cars()

base = alt.Chart(source).mark_point().encode(
    x='Horsepower:Q', y='Miles_per_Gallon:Q').properties(width=200, height=200)

alt.concat(base.encode(color='Origin:N'),
           base.encode(color='Cylinders:O')).resolve_scale(color='independent')

3. Uso compartido de demostraciones basado en Altair

Un caso de puerta de enlace oficial y clima.

from vega_datasets import data

df = data.seattle_weather()
scale = alt.Scale(
    domain=['sun', 'fog', 'drizzle', 'rain', 'snow'],
    range=['#e7ba52', '#c7c7c7', '#aec7e8', '#1f77b4', '#9467bd'])
brush = alt.selection(type='interval')
points = alt.Chart().mark_point().encode(
    alt.X('temp_max:Q', title='Maximum Daily Temperature (C)'),
    alt.Y('temp_range:Q', title='Daily Temperature Range (C)'),
    color=alt.condition(brush,
                        'weather:N',
                        alt.value('lightgray'),
                        scale=scale),
    size=alt.Size('precipitation:Q',
                  scale=alt.Scale(range=[1, 200]))).transform_calculate(
                      "temp_range",
                      "datum.temp_max - datum.temp_min").properties(
                          width=600, height=400).add_selection(brush)

bars = alt.Chart().mark_bar().encode(
    x='count()',
    y='weather:N',
    color=alt.Color('weather:N', scale=scale),
).transform_calculate(
    "temp_range",
    "datum.temp_max - datum.temp_min").transform_filter(brush).properties(
        width=600)

alt.vconcat(points, bars, data=df)

Para otros casos, consulte el sitio web oficial, no más manejo:

Sitio web oficial: https://altair-viz.github.io/index.html 

  • Gráfico simple

  • gráfico de barras

  • gráfico de líneas

  • gráfico de área

  • diagrama de dispersión

  • gráfico de histgogram

  • mapa

  • Diagrama interactivo

  • Estudios de caso

  • Otros gráficos

 

 

Supongo que te gusta

Origin blog.csdn.net/qq_21478261/article/details/114850165
Recomendado
Clasificación