Azimlib0.3.0 · documentation

Edição agrupada de cores e dados

Outputs under gallery/ are local generated previews, not distributed assets. For versioned current images, see the 0.3 gallery.

Layer, ScatterCollection, MeshCollection, ScalarImage e VectorCollection aceitam norm, cmap, clim e array por set() e azl.setp(), combinados com seus dados/estilos já editáveis. O núcleo e o desenho continuam próprios.

import azimlib as azl
from azimlib.colors import Normalize

fig, ax = azl.subplots()
image = ax.imshow([[1, 2], [3, 4]], extent=(-54, -44, -26, -18))
bar = fig.colorbar(image, orientation='horizontal')

image.set(data=[[10, 20, 30]], norm=Normalize(),
          cmap='plasma', clim=(0, 50), alpha=.8)
fig.savefig('campo.svg')

Contrato dos lotes

Offsets/sizes, extent/forma da imagem, UVC/scale e estilos também podem entrar no mesmo lote. Dados e propriedades são verificados antes de alterar o handle ou a norm compartilhada. Erros comuns de forma, paleta, intervalo ou estilo preservam dados, cores, visibilidade e callbacks. A validação prospectiva usa uma cópia rasa da norm com callbacks isolados, sem mudar a instância original.

Observadores e colorbars

Um lote em um handle agrupa suas notificações de Artist e de ScalarMappable; os observadores recebem os dados/estilos/cores finais. Uma norm compartilhada continua notificando os outros mappables quando seus limites mudam. Não há transação entre vários Artists, rollback de callbacks que lançam exceções ou garantia de isolamento para efeitos externos de subclasses customizadas de norm. Matplotlib aplica seus setters em sequência; o agrupamento/validação prévia é uma garantia própria da Azimlib, sem prometer contagem idêntica de sinais.

Alterar a paleta ou clim com a mesma norm preserva locators/formatters personalizados da colorbar. Substituir a instância de norm redefine seus tickers, como Matplotlib; a conexão com a norm antiga é removida. Setters individuais, getp, SVG/PNG e exportação HTML usam os mesmos handles. Editar cores/dados não muda automaticamente o extent geográfico.

Comparação e limites

mappable-batches-reference.json registra 20 estados de Matplotlib 3.11.2/Agg: imagem, mesh, pontos e vetores, antes/depois do lote, troca de norm, atribuição de paleta e retorno à paleta padrão. O tool inspect_mappable_batches.py importa Matplotlib somente em desenvolvimento; os testes da Azimlib usam o JSON e não precisam dele.

As regressões adicionais cobrem callbacks finais, norm compartilhada, inválidos sem alteração parcial, 24 ordens de argumentos, dados/geografia no lote, missing values, norm logarítmica/divergente/discreta, exportações e igualdade PNG entre lote e setters dedicados. Não entregamos aqui edição completa de contornos, reclassificação/regeneração automática de legendas temáticas ou RGBA/máscaras.

Veja o exemplo, antes (gallery/mapping-before.png, generated locally) e depois (gallery/mapping-after.png, generated locally).