Skip to content

Commit a352773

Browse files
committed
[processing] update vector layer scatterplot
1 parent 46a9891 commit a352773

File tree

2 files changed

+13
-14
lines changed

2 files changed

+13
-14
lines changed

python/plugins/processing/algs/qgis/QGISAlgorithmProvider.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -278,12 +278,12 @@ def __init__(self):
278278
if hasPlotly:
279279
#~ from .VectorLayerHistogram import VectorLayerHistogram
280280
#~ from .RasterLayerHistogram import RasterLayerHistogram
281-
#~ from .VectorLayerScatterplot import VectorLayerScatterplot
281+
from .VectorLayerScatterplot import VectorLayerScatterplot
282282
#~ from .MeanAndStdDevPlot import MeanAndStdDevPlot
283283
from .BarPlot import BarPlot
284284
#~ from .PolarPlot import PolarPlot
285285

286-
self.alglist.extend([BarPlot()])
286+
self.alglist.extend([VectorLayerScatterplot(), BarPlot()])
287287

288288
self.externalAlgs = [] # to store algs added by 3rd party plugins as scripts
289289

python/plugins/processing/algs/qgis/VectorLayerScatterplot.py

+11-12
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525

2626
__revision__ = '$Format:%H$'
2727

28-
import matplotlib.pyplot as plt
29-
import matplotlib.pylab as lab
28+
import plotly as plt
29+
import plotly.graph_objs as go
3030

3131
from processing.core.GeoAlgorithm import GeoAlgorithm
3232
from processing.core.parameters import ParameterVector
@@ -51,10 +51,12 @@ def defineCharacteristics(self):
5151
self.addParameter(ParameterVector(self.INPUT,
5252
self.tr('Input layer')))
5353
self.addParameter(ParameterTableField(self.XFIELD,
54-
self.tr('X attribute'), self.INPUT,
54+
self.tr('X attribute'),
55+
self.INPUT,
5556
ParameterTableField.DATA_TYPE_NUMBER))
5657
self.addParameter(ParameterTableField(self.YFIELD,
57-
self.tr('Y attribute'), self.INPUT,
58+
self.tr('Y attribute'),
59+
self.INPUT,
5860
ParameterTableField.DATA_TYPE_NUMBER))
5961

6062
self.addOutput(OutputHTML(self.OUTPUT, self.tr('Scatterplot')))
@@ -68,11 +70,8 @@ def processAlgorithm(self, feedback):
6870
output = self.getOutputValue(self.OUTPUT)
6971

7072
values = vector.values(layer, xfieldname, yfieldname)
71-
plt.close()
72-
plt.scatter(values[xfieldname], values[yfieldname])
73-
plt.ylabel(yfieldname)
74-
plt.xlabel(xfieldname)
75-
plotFilename = output + '.png'
76-
lab.savefig(plotFilename)
77-
with open(output, 'w') as f:
78-
f.write('<html><img src="' + plotFilename + '"/></html>')
73+
data = [go.Scatter(x=values[xfieldname],
74+
y=values[yfieldname],
75+
mode='markers'
76+
)]
77+
plt.offline.plot(data, filename=output)

0 commit comments

Comments
 (0)