Class: QgsDiagramRenderer

Evaluates and returns the diagram settings relating to a diagram for a specific feature.

Note

This is an abstract class, with methods which must be implemented by a subclass.

The following methods must be implemented: clone(), diagramAttributes(), diagramSettings(), diagramSize(), readXml(), rendererName(), writeXml()

Class Hierarchy

Inheritance diagram of qgis.core.QgsDiagramRenderer

Subclasses

QgsLinearlyInterpolatedDiagramRenderer

Alters the size of rendered diagrams using linear scaling.

QgsSingleCategoryDiagramRenderer

Renders the diagrams for all features with the same settings.

QgsStackedDiagramRenderer

Renders diagrams using mixed diagram render types.

class qgis.core.QgsDiagramRenderer[source]

Bases: object

attributeLegend(self) bool[source]

Returns True if renderer will show legend items for diagram attributes.

Return type:

bool

abstract clone(self) QgsDiagramRenderer | None[source]

Returns new instance that is equivalent to this one

Return type:

Optional[QgsDiagramRenderer]

convertSizeToMapUnits(self, size: QSizeF, context: QgsRenderContext)[source]

Converts size from mm to map units

Parameters:
diagram(self) QgsDiagram | None[source]
Return type:

Optional[QgsDiagram]

abstract diagramAttributes(self) List[str]

Returns attribute indices needed for diagram rendering

Return type:

List[str]

abstract diagramSettings(self) List[QgsDiagramSettings][source]

Returns list with all diagram settings in the renderer

diagramSettings(self, feature: QgsFeature, c: QgsRenderContext, s: QgsDiagramSettings) -> bool Returns diagram settings for a feature (or False if the diagram for the feature is not to be rendered). Used internally within renderDiagram()

Parameters:
  • feature – the feature

  • c – render context

  • s – out: diagram settings for the feature

Return type:

List[QgsDiagramSettings]

abstract diagramSize(self, feature: QgsFeature, c: QgsRenderContext) QSizeF[source]

Returns size of the diagram (in painter units) or an invalid size in case of error

Parameters:
Return type:

QSizeF

static dpiPaintDevice(a0: QPainter | None) int[source]

Returns the paint device dpi (or -1 in case of error

Parameters:

a0 (Optional[QPainter])

Return type:

int

virtual legendItems(self, nodeLayer: QgsLayerTreeLayer | None) List[QgsLayerTreeModelLegendNode]

Returns list of legend nodes for the diagram

Note

caller is responsible for deletion of QgsLayerTreeModelLegendNodes

Parameters:

nodeLayer (Optional[QgsLayerTreeLayer])

Return type:

List[QgsLayerTreeModelLegendNode]

abstract readXml(self, elem: QDomElement, context: QgsReadWriteContext)[source]

Reads diagram state from a DOM element. Subclasses should ensure that _readXml() is called by their readXml implementation to restore the general QgsDiagramRenderer settings.

See also

writeXml()

Parameters:
virtual referencedFields(self, context: QgsExpressionContext = QgsExpressionContext()) Set[str]

Returns the set of any fields required for diagram rendering

Parameters:

context (QgsExpressionContext = QgsExpressionContext()) – expression context the diagrams will be drawn using

Return type:

Set[str]

virtual renderDiagram(self, feature: QgsFeature, c: QgsRenderContext, pos: QPointF | QPoint, properties: QgsPropertyCollection = QgsPropertyCollection())[source]

Renders the diagram for a specified feature at a specific position in the passed render context.

Parameters:
abstract rendererName(self) str[source]
Return type:

str

setAttributeLegend(self, enabled: bool)[source]

Sets whether the renderer will show legend items for diagram attributes.

Parameters:

enabled (bool) – set to True to show diagram attribute legend

setDiagram(self, d: QgsDiagram | None)[source]
Parameters:

d (Optional[QgsDiagram])

virtual sizeMapUnits(self, feature: QgsFeature, c: QgsRenderContext) QSizeF[source]

Returns size of the diagram for a feature in map units. Returns an invalid QSizeF in case of error

Parameters:
Return type:

QSizeF

abstract writeXml(self, layerElem: QDomElement, doc: QDomDocument, context: QgsReadWriteContext)[source]

Writes diagram state to a DOM element. Subclasses should ensure that _writeXml() is called by their writeXml implementation to save the general QgsDiagramRenderer settings.

See also

readXml()

Parameters: