Dispersión de Matlab y mapa de colores

1. ¿Qué es un diagrama de dispersión?

Cuando estudié matemáticas y física por primera vez, ya sabía que para obtener los datos tenía que "dibujar puntos e imágenes", marcar cada dato en el denso papel cuadriculado y luego conectarlos con polilíneas o curvas suaves.
Simplemente correspondiente a la función de dibujo de matlab, scatter() 1 2 se usa para dibujar puntos y plot() se usa para conectar líneas.
Por supuesto, también puede agregar '.' 'o'parámetros a plot() plot3() para especificar el gráfico como un marcador sin líneas 3. Algunas personas también usan plot para evitar el problema de la leyenda en la dispersión (no he encontrado problemas similares en matlab, que pueden ser debido a la versión 4 ). 5 Sin embargo, scatter() sigue siendo mucho más flexible que plot() en el procesamiento de diagramas de puntos (podremos comparar los dos métodos más adelante).

2. ¿Qué datos deben presentarse mediante un diagrama de dispersión?

La mayor parte de la exposición inicial al dibujo de Matlab comenzó con la función plot(), pero de hecho, el diagrama de dispersión obtenido por scatter() son los datos más originales. Si no existe una conexión secuencial entre los datos (como la posición de la bola que cae en el papel después de ser extraída de la pista en un experimento físico y otros resultados estadísticos) o los datos en sí necesitan eliminar algunos puntos obviamente incorrectos, ciegamente use líneas (independientemente de que no sea recomendable conectarlas (ya sea una polilínea o una curva suave), por lo que se necesita un diagrama de dispersión.
(Aparte de las operaciones básicas, la comprensión de otros usos de los diagramas de dispersión es limitada)

3. ¿Cómo representar y llamar colores en matlab?

Los colores de los dibujos en MATLAB se muestran según el mapa de colores 6. En funciones como scatter(), se puede utilizar un conjunto de vectores para especificar directamente la secuencia de colores.

Orden de color y orden de estilo de línea

Con respecto a qué es "ColorOrder" y la especificación del orden de los colores, puede consultar: ¿
Por qué las líneas de dibujo tienen diferentes colores?

Para especificar uniformemente los colores de múltiples conjuntos de datos bajo el mismo eje de coordenadas, consulte:
Controlar cómo la función de dibujo selecciona colores y tipos de líneas.
Para versiones anteriores de Matlab, la selección de colores y tipos de líneas se puede lograr configurando (o eliminando ) parámetros predeterminados:
usar estilo de línea para dibujar - LineStyleOrder

PD: Realmente quiero tener una combinación de colores atractiva, un mapa de colores exclusivo o algo así.

Aplicaciones

Resuma algunas declaraciones relacionadas con la configuración de color usada:

ax = gca;
ax.LineStyle = '-';
co = get(groot,'defaultAxesColorOrder'); % 得到默认色序
ax.ColorOrder = co; % 指定色序
ax.ColorOrderIndex = 1; % 重置色序
% comment: 为什么要多此一举呢?
% 因为在双y轴情况下右侧轴会出现只改变线形而不改变颜色的情况,如果希望线性固定,按照默认色序改变线条颜色,就要重新指定一下。
ax.LineStyleCyclingMethod = "aftercolor"; % 指定多线循环模式,from MATLAB-R2023a


PD: Cuando utilice varios colores y estilos de línea a partir de R2023a, puede especificar si el dibujo recorre todos los estilos de línea y luego todos los colores, recorre todos los colores y luego todos los estilos de línea, o ambos al mismo tiempo configurando la propiedad LineStyleCyclingMethod. Utilice ambos. 7
Insertar descripción de la imagen aquí

4. Aplicación flexible de color y transparencia en diagramas de dispersión.

Los diagramas de dispersión pueden codificar con colores valores numéricos8 . Para mostrar los resultados con mayor claridad, la correspondencia entre colores y valores se puede marcar en la barra de colores, o se puede usar texto para marcar los valores de puntos específicos9 .

diagrama de dispersión 2D

diagrama de dispersión 3D

¡Agrupación de datos!

Analice rápidamente los datos recopilados: Crear diagramas de dispersión utilizando datos agrupados
Ejemplo de Matlab: una imagen obtenida con cuatro líneas de código, consulte el enlace de arriba
puede dibujar rápidamente gráficos estadísticos, gracias a los datos completos que se han registrado. Pegue los enlaces de ayuda relevantes a continuación y lea según sea necesario:
Tipo de datos
Agrupación Definición de variables
matriz categórica matriz de datos cualitativos categóricos cuyos valores provienen de un conjunto finito de
tabla de datos discretos no numéricos
preprocesamiento de datos función
de preprocesamiento de datos gplotmatrix Matriz de diagramas de dispersión por grupo

5. Atributos comunes del Scatter

Dispersar todas las propiedades establecidas en 10

(La configuración de atributos comunes se agregará más adelante según la experiencia)

Cómo configurar las propiedades de los gráficos

Atributos de clase de contenido

Atributos de clase de formato

6. Solución de problemas: Scatter no produce imágenes después de agregar configuraciones de secuencia de colores.

El resultado al especificar el orden de los colores.
Contenido de advertencia

Resultado sin especificar secuencia de colores
Fuente del programa de pintura 9

Solución apenas utilizable

La siguiente es una descripción de las variables de entrada en scatter(x,y,sz,c)y . Hay problemas con el último método y puede cambiar al tercer método para lograr operaciones similares (configurar colores a partir de un mapa de colores).scatter3(x,y,z,sz,c)c

Color de marcador, especificado como un nombre de color, triplete RGB, matriz de tripletes RGB o un vector de índices de mapa de colores.
Nombre del color : un nombre de color como “rojo” o un nombre corto como “r”.
Triplete RGB : un vector de fila de tres elementos cuyos elementos especifican las intensidades de los componentes rojo, verde y azul del color. Las intensidades deben estar en el rango [0,1]; por ejemplo, [0,4 0,6 0,7]. Los tripletes RGB son útiles para crear colores personalizados.
Matriz de tripletes RGB : una matriz de tres columnas en la que cada fila es un triplete RGB.
Vector de índices de mapas de colores : un vector de valores numéricos que tiene la misma longitud que los vectores xey.

clc,clear,close all

% 生成数据
n=[1:50];
xn=n./(n+1);

% 用 vector 的方式指定 Marker color 
% c = linspace(1,10,length(n)); % 指定色序画图失败

% 用 RGB triplet 的方式指定 Marker color
% 选择 colormap
% co = [0 0 1;
%       0 0.5 0;
%       1 0 0;
%       0 0.75 0.75;
%       0.75 0 0.75;
%       0.75 0.75 0;
%       0.25 0.25 0.25]; % 自己写一个 colormap
co = colormap("cool"); % 或读取 matlab 自带 colormap

% 对 colormap 进行插值(相当于手动操作色序选择)
[Xq,Yq] = meshgrid(1:size(co,2),linspace(1,size(co,1),length(n)));
c = interp2(1:size(co,2),1:size(co,1),co,Xq,Yq); % 行数和数据长度相同

% 查看对 colormap 的插值结果
% 这里相当于从 256 组 RGB triplet 中抽取了 50 组
figure
subplot(121);mesh(co);title('原始 colormap')
xticklabels({
    
    'R','G','B'})
subplot(122);mesh(c); title('插值后') 
xticklabels({
    
    'R','G','B'})

% 画图
figure
scatter(n,xn,[],c,'filled');

Ahora se pueden mostrar diagramas de dispersión con colores degradados
Resultados de interpolación del mapa de colores.


  1. Diagrama de dispersión-MATLAB ↩︎

  2. Diagrama de dispersión tridimensional-MATLAB ↩︎

  3. Gráfico de puntos o líneas 3D↩︎

  4. https://www.ilovematlab.cn/thread-526221-1-1.html?_dsign=6e07e44b ↩︎

  5. https://blog.csdn.net/mayubins/article/details/124738000 ↩︎

  6. Ver y configurar el mapa de colores actual - MATLAB ↩︎

  7. Apariencia y comportamiento de los ejes-MATLAB(LineStyleCyclingMethod) ↩︎

  8. https://blog.csdn.net/justKidrauhl/article/details/82492986 ↩︎

  9. https://blog.csdn.net/KEEPace_6/article/details/125373466 ↩︎ ↩︎

  10. Aspecto y comportamiento del diagrama de dispersión - MATLAB ↩︎

Supongo que te gusta

Origin blog.csdn.net/RainaRaina/article/details/131482014
Recomendado
Clasificación