¿Crear leyenda con nueva funcionalidad de símbolos definidos por datos en QGIS?


8

Tengo un gran conjunto de datos de geología que necesito mostrar utilizando un conjunto estándar de símbolos y colores de la industria. Los símbolos y colores son atributos de los datos. He estado utilizando la capacidad de símbolos definidos por datos de la construcción de desarrollo de QGIS (revisión de código b805894) para mostrar los datos de acuerdo con sus atributos. Esto funciona perfectamente en términos de mostrar los datos correctamente en la ventana del mapa.

El problema surge cuando intento crear una leyenda en el compositor. Los colores definidos por datos que se muestran en el mapa no pasan a la leyenda.

Aquí hay algunas capturas de pantalla. El primero muestra la ventana del mapa. Puede ver el problema manifestándose en el cuadro Capas a la izquierda. Los símbolos son todos de color negro.

La segunda captura de pantalla muestra la ventana del compositor con una leyenda.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí


2
simplemente suba sus pantallas a imgur o similar y publique el enlace. Edite su publicación para agregar las imágenes. Además: ¿Qué versión de QGIS está utilizando (ya que el compositor ha experimentado muchos cambios en el maestro QGIS actual)?
Curlew

Respuestas:


10

Las leyendas para la simbología definida por datos aún no se implementan. Hay un informe de error abierto / solicitud de función: https://issues.qgis.org/issues/11491

Pensando en ello, la simbología definida por datos es extremadamente poderosa y puede dar lugar a cientos de variaciones diferentes de un símbolo en color, forma, tamaño, rotación, etc. Puede ser inviable tener realmente una leyenda en tal caso.


Actualización 2017-08:

QGIS3 incluirá una leyenda automática para el tamaño definido por datos:

ingrese la descripción de la imagen aquí


2
Gracias por la respuesta y por abrir la solicitud de función. La simbología definida por datos es una herramienta fantástica, sin embargo, en mi opinión, sería muy limitada si no se pudiera utilizar en la producción de mapas profesionales.
ManChild

RE: Actualización 2017-08: ¿Qué pasa con los colores definidos por datos? Como es el caso en el OP ...
Chris

@Chris no está implementado hasta donde yo sé
oscuro

Ahora tenemos QGIS 3.0; ¿Está ahora disponible la leyenda automática para el tamaño definido por datos?
Cezar B

5

No estoy seguro de que pueda ser útil para casos complejos, pero logro obtener una leyenda falsa al agregar una capa de forma.

Luego creé puntos en la nueva capa con el mismo tipo de datos que los utilizados para definir la simbología, y localicé donde quería que apareciera la leyenda. Luego definí la misma simbología para esta capa y mostré los valores de datos correspondientes como etiquetas.


¡Este "truco" funciona especialmente bien para círculos graduados (o similares) leyendas!
Andrew Tice

4

Tuve que crear una leyenda para una simbología categorizada basada en el color definido por los datos. QGIS 3 no lo resolvió por mí. Así que creé un atributo que contiene el valor de categoría concatenado con el código hexadecimal de color.

Creé un estilo categorizado al azar para esta columna, exporté este estilo a un archivo sld y luego lo manipulé con regexp en un editor de texto para reemplazar para cada regla el código de color de relleno por el código mencionado en el nombre de la categoría. Después de eso, limpié el valor de la categoría y el nombre de la columna filtrada y finalmente apliqué ese nuevo estilo a mi capa.

Lo siento, el enlace de arriba está en francés.

http://si.cenlr.org/24-11-2017


3

Tengo el mismo problema con los mapas geológicos en QGIS 2.10. Los mapas suministrados tienen un código de color CMYK (actualmente "YMCK") que se puede interpretar con la siguiente fórmula:

color_cmyk( 
CASE WHEN substr("COLOR_CODE",3,1 ) IS 0 THEN 0
  WHEN substr("COLOR_CODE",3,1 ) IS 1 THEN 7
  WHEN substr("COLOR_CODE",3,1 ) IS 2 THEN 14
  WHEN substr("COLOR_CODE",3,1 ) IS 3 THEN 21
  WHEN substr("COLOR_CODE",3,1 ) IS 4 THEN 31
  WHEN substr("COLOR_CODE",3,1 ) IS 5 THEN 42
  WHEN substr("COLOR_CODE",3,1 ) IS 6 THEN 54
  WHEN substr("COLOR_CODE",3,1 ) IS 7 THEN 67
  WHEN substr("COLOR_CODE",3,1 ) IS 8 THEN 80
 ELSE 100
END,
CASE WHEN substr("COLOR_CODE",2,1 ) IS 0 THEN 0
  WHEN substr("COLOR_CODE",2,1 ) IS 1 THEN 7
  WHEN substr("COLOR_CODE",2,1 ) IS 2 THEN 14
  WHEN substr("COLOR_CODE",2,1 ) IS 3 THEN 21
  WHEN substr("COLOR_CODE",2,1 ) IS 4 THEN 31
  WHEN substr("COLOR_CODE",2,1 ) IS 5 THEN 42
  WHEN substr("COLOR_CODE",2,1 ) IS 6 THEN 54
  WHEN substr("COLOR_CODE",2,1 ) IS 7 THEN 67
  WHEN substr("COLOR_CODE",2,1 ) IS 8 THEN 80
  ELSE 100
END,
CASE WHEN substr("COLOR_CODE",1,1 ) IS 0 THEN 0
  WHEN substr("COLOR_CODE",1,1 ) IS 1 THEN 7
  WHEN substr("COLOR_CODE",1,1 ) IS 2 THEN 14
  WHEN substr("COLOR_CODE",1,1 ) IS 3 THEN 21
  WHEN substr("COLOR_CODE",1,1 ) IS 4 THEN 31
  WHEN substr("COLOR_CODE",1,1 ) IS 5 THEN 42
  WHEN substr("COLOR_CODE",1,1 ) IS 6 THEN 54
  WHEN substr("COLOR_CODE",1,1 ) IS 7 THEN 67
  WHEN substr("COLOR_CODE",1,1 ) IS 8 THEN 80
  ELSE 100
END, 
CASE WHEN substr("COLOR_CODE",4,1 ) IS 0 THEN 0
  WHEN substr("COLOR_CODE",4,1 ) IS 1 THEN 7
  WHEN substr("COLOR_CODE",4,1 ) IS 2 THEN 14
  WHEN substr("COLOR_CODE",4,1 ) IS 3 THEN 21
  WHEN substr("COLOR_CODE",4,1 ) IS 4 THEN 31
  WHEN substr("COLOR_CODE",4,1 ) IS 5 THEN 42
  WHEN substr("COLOR_CODE",4,1 ) IS 6 THEN 54
  WHEN substr("COLOR_CODE",4,1 ) IS 7 THEN 67
  WHEN substr("COLOR_CODE",4,1 ) IS 8 THEN 80
  ELSE 0
END)

pero esto le da el color negro en los cuadros de leyenda.

Así que pensé que podría resolver el problema utilizando el script anterior para calcular un nuevo campo de color que funcionó bastante bien y devolvió los valores RGB como 255,200,220. Entonces intenté

Color_rgb("Color") 

para producir un color definido de datos sin suerte (fórmula no válida)! Así que analicé el campo de color en 3 campos: rojo, verde y azul y la siguiente fórmula:

color_rgb("Red","Green","Blue")  

en el cuadro de fórmula de color definido por datos, se obtuvo el color correcto en el mapa y la leyenda ya no es negra, sino que utiliza la configuración de rampa de color para determinar el color de la leyenda.

Parece que necesitamos una opción en el cuadro desplegable de la rampa de color para especificar los colores definidos por los datos y luego debería usar cualquier color definido por los datos para producir la leyenda.

Todas las demás soluciones están bien, pero cuando se usa el filtro de leyenda en el compositor de mapas, uno quiere obtener el resultado correcto y no tener que ir a cada cuadro de leyenda y escribir los códigos rgb en las opciones de color de elegir.


3

He tenido conversaciones con el estudio geológico aquí en Australia Occidental y pueden proporcionar archivos de datos con códigos geológicos, colores rgb y códigos de patrones geológicos. Solo necesitamos un complemento para leer estos archivos para agregar estos atributos a los polígonos para que puedan mostrarse en la leyenda. He probado la opción de color (rgb) pero el creador de la leyenda no ve estos colores.


0

Tuve el mismo problema ... rgb (rojo, verde, azul) donde rojo, verde, azul son valores enumerados en la tabla de atributos se pueden usar para establecer el color del mapa, pero luego el color no se replica en el panel de capas y luego no se transfirió a una leyenda en el compositor de impresión ... lo que tuve que hacer fue hacer clic en cada una de las capas en el panel de capas y luego elegir y restablecer los colores en el panel de capas del mapa ... una solución tediosa ... debería haber una manera de codificar esto en PyGIS ...

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.