如何在PyQGI中使用cptcity目录中的颜色渐变

2024-10-02 06:29:13 发布

您现在位置:Python中文网/ 问答频道 /正文

在QGIS中(如您所知),有31个预定义的颜色渐变,在cpt城市目录中也有更多。我想要访问cpt城市目录(名称:visspec)中的一个彩色坡道。
这是我的预定义颜色渐变的代码,它正在工作:

myRenderer  = QgsGraduatedSymbolRenderer()
myRenderer.setClassAttribute("totalTraffic")
myRenderer.setMode(QgsGraduatedSymbolRenderer.EqualInterval)
myRenderer.updateClasses(layer, 
QgsGraduatedSymbolRenderer.EqualInterval,500000)
#get default style
myStyle = QgsStyle().defaultStyle()
#get a list of default color ramps [u'Blues', u'BrBG', u'BuGn'....]
defaultColorRampNames = myStyle.colorRampNames()
# setting ramp to Blues, first index of defaultColorRampNames
ramp = myStyle.colorRamp(defaultColorRampNames[7])
myRenderer.updateColorRamp(ramp)
layer.setRenderer(myRenderer)
QgsProject.instance().addMapLayer(layer)

这是我的代码,我试图直接导入我想要的颜色渐变文件,但是这个代码不能正常工作。只是给出随机的彩色像素。在

^{pr2}$

这是我在QGIS中直接应用visspec ccolor ramp时得到的结果 enter image description here

这就是我的第二个密码 enter image description here

提前感谢:)


Tags: 代码目录layerget颜色彩色qgiscpt
1条回答
网友
1楼 · 发布于 2024-10-02 06:29:13

您应该使用QgsCptCityColorRamp类:)

    myRenderer  = QgsGraduatedSymbolRenderer()

    myRenderer.setClassAttribute("totalTraffic")

    myRenderer.setMode(QgsGraduatedSymbolRenderer.EqualInterval)

    myRenderer.updateClasses(layer,
                QgsGraduatedSymbolRenderer.EqualInterval,100000)

    #using color ramp visspec

    ramp = QgsCptCityColorRamp("jjg/physics/visspec","",False,True)

    myRenderer.updateColorRamp(ramp)

    layer.setRenderer(myRenderer)

    QgsProject.instance().addMapLayer(layer)

相关问题 更多 >

    热门问题