-
Notifications
You must be signed in to change notification settings - Fork 128
Description
Hello,
I just want to make a simple 2D histogram via the "Operations -> Compute -> 2D histogram". However, I cannot do this with any type of dataset, even the simplest.
This actually works for version 3.4.0.1 but not with the latest version 3.6.2 (with any dataset). I try it on two different computer (iMac M1 and MacBook Pro M1PRO) and I have the same issue.
I tried to send a report bug from the Veusz app but it says that it is impossible because it failed to connect to error servor (Nevertheless, internet is correctly plugged..).
If I can do anything or if you need more informations, please tell me.
Find below the report generate by Veusz :
Veusz version: 3.6.2
Python version: 3.11.1 (v3.11.1:a7a450f84a, Dec 6 2022, 15:24:06) [Clang 13.0.0 (clang-1300.0.29.30)]
Python platform: darwin
Numpy version: 1.24.2
Qt version: 5.15.8
PyQt version: 5.15.8
sip version: 6.7.6
Date: Thu, 06 Apr 2023 15:18:43 +0000
Traceback (most recent call last):
File "veusz/windows/plotwindow.py", line 1088, in checkPlotUpdate
File "veusz/document/doc.py", line 369, in paintTo
File "veusz/widgets/root.py", line 144, in draw
File "veusz/widgets/page.py", line 336, in draw
File "veusz/widgets/page.py", line 271, in findAxisRanges
File "veusz/widgets/page.py", line 258, in processDepends
File "veusz/widgets/page.py", line 229, in processWidgetDeps
File "veusz/widgets/page.py", line 217, in _updateRangeFromPlotter
File "veusz/widgets/surface3d.py", line 117, in getRange
File "veusz/datasets/twod.py", line 138, in getDataRanges
File "veusz/datasets/twod.py", line 81, in getPixelEdges
File "veusz/datasets/plugin.py", line 145, in
File "veusz/datasets/plugin.py", line 33, in getPluginData
File "veusz/plugins/datasetplugin.py", line 464, in update
File "veusz/plugins/datasetplugin.py", line 1969, in updateDatasets
File "<array_function internals>", line 198, in histogram2d
TypeError: histogram2d() got an unexpected keyword argument 'normed'
Frame checkPlotUpdate (File veusz/windows/plotwindow.py, line 1092)
self = <veusz.windows.plotwindow.PlotWindow object at 0x11f82f520>
self.AdjustIgnored = 0
self.AdjustToContents = 2
self.AdjustToContentsOnFirstShow = 1
self.AnchorUnderMouse = 2
self.AnchorViewCenter = 1
self.BoundingRectViewportUpdate = 4
self.Box = 1
self.CacheBackground = 1
self.CacheNone = 0
self.DontAdjustForAntialiasing = 4
self.DontClipPainter = 1
self.DontSavePainterState = 2
self.DrawChildren = 2
self.DrawWindowBackground = 1
self.FullViewportUpdate = 0
self.HLine = 4
self.IgnoreMask = 4
self.MinimalViewportUpdate = 1
self.NoAnchor = 0
self.NoDrag = 0
self.NoFrame = 0
self.NoViewportUpdate = 3
self.Panel = 2
self.PdmDepth = 6
self.PdmDevicePixelRatio = 11
self.PdmDevicePixelRatioScaled = 12
self.PdmDpiX = 7
self.PdmDpiY = 8
self.PdmHeight = 2
self.PdmHeightMM = 4
self.PdmNumColors = 5
self.PdmPhysicalDpiX = 9
self.PdmPhysicalDpiY = 10
self.PdmWidth = 1
self.PdmWidthMM = 3
self.Plain = 16
self.Raised = 32
self.RubberBandDrag = 2
self.ScrollHandDrag = 1
self.Shadow_Mask = 240
self.Shape_Mask = 15
self.SmartViewportUpdate = 2
self.StyledPanel = 6
self.Sunken = 48
self.VLine = 5
self.WinPanel = 3
self.dict = {'scene': <PyQt5.QtWidgets.QGraphicsScene object at 0x11f82f640>, 'dpi': (72, 72), 'pixmapitem': <PyQt5.QtWidgets.QGraph...
self.doc = 'Class to show the plot(s) in a scrollable window.'
self.module = 'veusz.windows.plotwindow'
self.antialias = True
self.clickmode = 'select'
self.controlgraphroot = <veusz.windows.plotwindow.ControlGraphRoot object at 0x11f82f760>
self.currentclickmode = None
self.docchangeset = 2
self.document = <veusz.document.doc.Document object at 0x11f73dcf0>
self.dpi = (72, 72)
self.grabpos = None
self.ignoreclick = False
self.interval = -1
self.isfullscreen = False
self.lastwidgetsselected = [<veusz.widgets.root.Root object at 0x12614b2d0>]
self.oldpagenumber = 0
self.oldzoom = 1.0
self.pagenumber = 0
self.painthelper = <veusz.document.painthelper.PaintHelper object at 0x110061a90>
self.pickerinfo = <veusz.widgets.pickable.PickInfo object at 0x11f7dd850>
self.pickeritem = <veusz.windows.plotwindow.PickerCrosshairItem object at 0x11f82f880>
self.pickerwidgets = []
self.pixmapitem = <PyQt5.QtWidgets.QGraphicsPixmapItem object at 0x11f82f5b0>
self.rendercontrol = <veusz.windows.plotwindow.RenderControl object at 0x11f82f9a0>
self.scene = <PyQt5.QtWidgets.QGraphicsScene object at 0x11f82f640>
self.scrolltimer = <PyQt5.QtCore.QTimer object at 0x11f82fb50>
self.selectactiongrp = <PyQt5.QtWidgets.QActionGroup object at 0x11f821000>
self.staticMetaObject = <PyQt5.QtCore.QMetaObject object at 0x129da5000>
self.sumwheeldelta = 0
self.timer = <PyQt5.QtCore.QTimer object at 0x11f82fac0>
self.updateintervals = ((0, 'Disable'), (-1, 'On document change'), (100, 'Every 0.1s'), (250, 'Every 0.25s'), (500, 'Every 0.5s'), (1000, 'Eve...
self.viewtoolbar = <PyQt5.QtWidgets.QToolBar object at 0x11f82e200>
self.vzactions = {'file.new.menu': <PyQt5.QtWidgets.QAction object at 0x11f8839a0>, 'file.new.graph': <PyQt5.QtWidgets.QAction object at ...
self.zoomfactor = 1.0
self.zoomrect = <PyQt5.QtWidgets.QGraphicsRectItem object at 0x11f82f7f0>
devicepixelratio = 2.0
scaling = 2.0
size = (1241.8582677165357, 1128.4157480314962)
phelper = <veusz.document.painthelper.PaintHelper object at 0x129be7710>
Frame paintTo (File veusz/document/doc.py, line 369)
self = <veusz.document.doc.Document object at 0x11f73dcf0>
self.dict = {'changeset': 575, 'compatlevel': 1, 'datasettags': defaultdict(<class 'list'>, {}), 'suspendupdates': [], 'locale': <Py...
self.doc = 'Document class for holding the graph data.\n '
self.module = 'veusz.document.doc'
self.weakref = None
self.basewidget = <veusz.widgets.root.Root object at 0x12614b2d0>
self.changeset = 575
self.compatlevel = 1
self.data = {'O10 00': <veusz.datasets.plugin.Dataset2DPlugin object at 0x11ee5df50>, 'O10 10': <veusz.datasets.plugin.Dataset2DPlug...
self.datasettags = defaultdict(<class 'list'>, {})
self.evaluate = <veusz.document.evaluate.Evaluate object at 0x11dbada50>
self.filename = '/Users/pitou/Library/Mobile Documents/comappleCloudDocs/Université/PhD Thesis/Memoire/2_TogSwitch/Stochastique/Distr...
self.historybatch = []
self.historyredo = []
self.historyundo = [<veusz.document.operations.OperationSettingSet object at 0x129bba650>, <veusz.document.operations.OperationSettingSet o...
self.locale = <PyQt5.QtCore.QLocale object at 0x129bc78b0>
self.maxcompatlevel = 1
self.modified = True
self.pluginsloaded = True
self.staticMetaObject = <PyQt5.QtCore.QMetaObject object at 0x129da5150>
self.suspendupdates = []
painthelper = <veusz.document.painthelper.PaintHelper object at 0x129be7710>
page = 0
Frame draw (File veusz/widgets/root.py, line 144)
self = <veusz.widgets.root.Root object at 0x12614b2d0>
self.dict = {'parent': None, 'document': <veusz.document.doc.Document object at 0x11f73dcf0>, 'name': '/', 'children': [<veusz.widge...
self.doc = 'Root widget class for plotting the document.'
self.module = 'veusz.widgets.root'
self.actions = []
self.allowusercreation = False
self.childnames = ['O10 00', 'O10 10', 'O100 00', 'O100 10', 'O500 00', '0500 10']
self.children = [<veusz.widgets.page.Page object at 0x129bc22d0>, <veusz.widgets.page.Page object at 0x11f9b7850>, <veusz.widgets.page.P...
self.document = <veusz.document.doc.Document object at 0x11f73dcf0>
self.isaxis = False
self.isplotter = False
self.issetting = False
self.issettings = False
self.iswidget = True
self.name = '/'
self.nodetype = 'widget'
self.parent = None
self.path = '/'
self.settings = <veusz.setting.settings.Settings object at 0x12614ae50>
self.typename = 'document'
self.userdescription = ''
painthelper = <veusz.document.painthelper.PaintHelper object at 0x129be7710>
pagenum = 0
xw = 620.9291338582678
yw = 564.2078740157481
posn = [0, 0, 620.9291338582678, 564.2078740157481]
painter = <veusz.document.painthelper.RecordPainter object at 0x129eabed0>
page = <veusz.widgets.page.Page object at 0x129bc22d0>
Frame draw (File veusz/widgets/page.py, line 336)
self = <veusz.widgets.page.Page object at 0x129bc22d0>
self.dict = {'parent': <veusz.widgets.root.Root object at 0x12614b2d0>, 'document': <veusz.document.doc.Document object at 0x11f73dc...
self.doc = 'A class for representing a page of plotting.'
self.module = 'veusz.widgets.page'
self.weakref = None
self.actions = []
self.allowusercreation = True
self.childnames = ['scene3d1', 'label1', 'label2']
self.children = [<veusz.widgets.scene3d.Scene3D object at 0x129b33a90>, <veusz.widgets.textlabel.TextLabel object at 0x129d04090>, <veus...
self.description = 'Blank page'
self.document = <veusz.document.doc.Document object at 0x11f73dcf0>
self.isaxis = False
self.isplotter = False
self.issetting = False
self.issettings = False
self.iswidget = True
self.name = 'O10 00'
self.nodetype = 'widget'
self.parent = <veusz.widgets.root.Root object at 0x12614b2d0>
self.path = '/O10 00'
self.settings = <veusz.setting.settings.Settings object at 0x129b42e50>
self.typename = 'page'
self.userdescription = ''
parentposn = [0, 0, 620.9291338582678, 564.2078740157481]
painthelper = <veusz.document.painthelper.PaintHelper object at 0x129be7710>
outerbounds = None
s = <veusz.setting.settings.Settings object at 0x129b42e50>
x1 = 0
y1 = 0
x2 = 620.9291338582678
y2 = 564.2078740157481
axisdependhelper = <veusz.widgets.page.AxisDependHelper object at 0x10fd5d350>
Frame findAxisRanges (File veusz/widgets/page.py, line 271)
self = <veusz.widgets.page.AxisDependHelper object at 0x10fd5d350>
self.dict = {'deps': defaultdict(<class 'list'>, {(<veusz.widgets.axis3d.Axis3D object at 0x11f9ab990>, None): [(<veusz.widgets.surf...
self.doc = "A class to work out the dependency of widgets on axes and vice\n versa, in terms of ranges of the axes.\n\n Note:...
self.module = 'veusz.widgets.page'
self.weakref = None
self.axes = [<veusz.widgets.axis3d.Axis3D object at 0x11f9ab990>, <veusz.widgets.axis3d.Axis3D object at 0x11f9b58d0>, <veusz.widget...
self.axis_plotter_map = defaultdict(<class 'list'>, {<veusz.widgets.axis3d.Axis3D object at 0x11f9ab990>: [<veusz.widgets.surface3d.Surface3D ob...
self.axis_to_axislinked = {}
self.axislinked_to_axis = {}
self.deps = defaultdict(<class 'list'>, {(<veusz.widgets.axis3d.Axis3D object at 0x11f9ab990>, None): [(<veusz.widgets.surface3d.Sur...
self.pairs = [((<veusz.widgets.surface3d.Surface3D object at 0x129cec4d0>, 'sx'), (<veusz.widgets.axis3d.Axis3D object at 0x11f9ab990...
self.ranges = {<veusz.widgets.axis3d.Axis3D object at 0x11f9ab990>: [1e+99, -1e+99], <veusz.widgets.axis3d.Axis3D object at 0x11f9b58d...
Frame processDepends (File veusz/widgets/page.py, line 258)
self = <veusz.widgets.page.AxisDependHelper object at 0x10fd5d350>
ordered = [(<veusz.widgets.surface3d.Surface3D object at 0x129cec4d0>, 'sx'), (<veusz.widgets.surface3d.Surface3D object at 0x129c...
cyclic = []
dep = (<veusz.widgets.axis3d.Axis3D object at 0x11f9ab990>, None)
Frame processWidgetDeps (File veusz/widgets/page.py, line 229)
self = <veusz.widgets.page.AxisDependHelper object at 0x10fd5d350>
dep = (<veusz.widgets.axis3d.Axis3D object at 0x11f9ab990>, None)
widget = <veusz.widgets.axis3d.Axis3D object at 0x11f9ab990>
widget_dep = None
widgetd = <veusz.widgets.surface3d.Surface3D object at 0x129cec4d0>
widgetd_dep = 'sx'
Frame _updateRangeFromPlotter (File veusz/widgets/page.py, line 217)
self = <veusz.widgets.page.AxisDependHelper object at 0x10fd5d350>
axis = <veusz.widgets.axis3d.Axis3D object at 0x11f9ab990>
plotter = <veusz.widgets.surface3d.Surface3D object at 0x129cec4d0>
plotterdep = 'sx'
Frame getRange (File veusz/widgets/surface3d.py, line 117)
self = <veusz.widgets.surface3d.Surface3D object at 0x129cec4d0>
self.dict = {'parent': <veusz.widgets.graph3d.Graph3D object at 0x129b41e50>, 'document': <veusz.document.doc.Document object at 0x1...
self.doc = 'Plotting surface in 3D.'
self.module = 'veusz.widgets.surface3d'
self.weakref = None
self.actions = []
self.allowusercreation = True
self.childnames = []
self.children = []
self.description = '3D surface'
self.document = <veusz.document.doc.Document object at 0x11f73dcf0>
self.isaxis = False
self.isplotter = True
self.issetting = False
self.issettings = False
self.iswidget = True
self.mode_idxs = {'x(y,z)': (0, 1, 2), 'x(z,y)': (0, 2, 1), 'y(x,z)': (1, 0, 2), 'y(z,x)': (1, 2, 0), 'z(x,y)': (2, 0, 1), 'z(y,x)': (2, 1, 0)}
self.modes = ('x(y,z)', 'x(z,y)', 'y(x,z)', 'y(z,x)', 'z(x,y)', 'z(y,x)')
self.name = 'surface3d1'
self.nodetype = 'widget'
self.parent = <veusz.widgets.graph3d.Graph3D object at 0x129b41e50>
self.path = '/O10 00/scene3d1/graph3d1/surface3d1'
self.settings = <veusz.setting.settings.Settings object at 0x110047890>
self.typename = 'surface3d'
self.userdescription = ''
axis = <veusz.widgets.axis3d.Axis3D object at 0x11f9ab990>
depname = 'sx'
axrange = [1e+99, -1e+99]
s = <veusz.setting.settings.Settings object at 0x110047890>
data = <veusz.datasets.plugin.Dataset2DPlugin object at 0x11ee5df50>
axidx = 0
idx = 1
rng = None
Frame getDataRanges (File veusz/datasets/twod.py, line 138)
self = <veusz.datasets.plugin.Dataset2DPlugin object at 0x11ee5df50>
self.dict = {'pluginmanager': <veusz.plugins.datasetplugin.DatasetPluginManager object at 0x129be9b50>, 'pluginds': <veusz.plugins.d...
self.doc = 'Return 2D dataset from a plugin.'
self.module = 'veusz.datasets.plugin'
self.weakref = None
self.column_descriptions = ()
self.columns = ()
self.data = array([], shape=(1, 0), dtype=float64)
self.datatype = 'numeric'
self.dimensions = 2
self.displaytype = 'numeric'
self.document = <veusz.document.doc.Document object at 0x11f73dcf0>
self.dstype = 'Histogram 2D'
self.editable = False
self.linked = None
self.pluginds = <veusz.plugins.datasetplugin.Dataset2D object at 0x11dbaee10>
self.pluginmanager = <veusz.plugins.datasetplugin.DatasetPluginManager object at 0x129be9b50>
self.subsetclass = None
self.tags = set()
self.xcent = None
self.xedge = None
self.xrange = None
self.ycent = None
self.yedge = None
self.yrange = None
Frame getPixelEdges (File veusz/datasets/twod.py, line 81)
self = <veusz.datasets.plugin.Dataset2DPlugin object at 0x11ee5df50>
scalefnx = None
scalefny = None
fromcentres = <function Dataset2DBase.getPixelEdges..fromcentres at 0x129ebdf80>
Frame (File veusz/datasets/plugin.py, line 145)
self = <veusz.datasets.plugin.Dataset2DPlugin object at 0x11ee5df50>
Frame getPluginData (File veusz/datasets/plugin.py, line 33)
self = <veusz.datasets.plugin.Dataset2DPlugin object at 0x11ee5df50>
attr = 'xedge'
Frame update (File veusz/plugins/datasetplugin.py, line 465)
self = <veusz.plugins.datasetplugin.DatasetPluginManager object at 0x129be9b50>
self.dict = {'plugin': <veusz.plugins.datasetplugin.Histogram2D object at 0x110120390>, 'document': <veusz.document.doc.Document obj...
self.doc = 'Manage datasets generated by plugin.'
self.module = 'veusz.plugins.datasetplugin'
self.weakref = None
self.changeset = 575
self.datasetnames = ['O10 00']
self.datasets = [<veusz.plugins.datasetplugin.Dataset2D object at 0x11dbaee10>]
self.document = <veusz.document.doc.Document object at 0x11f73dcf0>
self.fields = {'binsx': 51, 'binsy': 51, 'ds_inx': 'TSS2α(2)β(2)Ω(10)tP(100)(0.0,0.0).dat4', 'ds_iny': 'TSS2α(2)β(2)Ω(10)tP(100)(0.0,0...
self.helper = <veusz.plugins.datasetplugin.DatasetPluginHelper object at 0x129be9650>
self.plugin = <veusz.plugins.datasetplugin.Histogram2D object at 0x110120390>
self.veuszdatasets = [<veusz.datasets.plugin.Dataset2DPlugin object at 0x11ee5df50>]
raiseerrors = False
Frame updateDatasets (File veusz/plugins/datasetplugin.py, line 1969)
self = <veusz.plugins.datasetplugin.Histogram2D object at 0x110120390>
self.dict = {'fields': [<veusz.plugins.field.FieldDataset object at 0x129beb410>, <veusz.plugins.field.FieldFloatOrAuto object at 0x...
self.doc = 'Compute 2D histogram for two 1D dataset.\n\n Algorithm: Count up values in boxes. Sort. Compute probability\n wor...
self.module = 'veusz.plugins.datasetplugin'
self.weakref = None
self.author = ''
self.description_full = 'Given two 1D datasets, compute a 2D histogram. Can optionally compute a probability distribution.'
self.description_short = 'Compute 2D histogram.'
self.dsout = <veusz.plugins.datasetplugin.Dataset2D object at 0x11dbaee10>
self.fields = [<veusz.plugins.field.FieldDataset object at 0x129beb410>, <veusz.plugins.field.FieldFloatOrAuto object at 0x129beb510>,...
self.has_parameters = True
self.menu = ('Compute', '2D histogram')
self.name = 'Histogram 2D'
fields = {'binsx': 51, 'binsy': 51, 'ds_inx': 'TSS2α(2)β(2)Ω(10)tP(100)(0.0,0.0).dat4', 'ds_iny': 'TSS2α(2)β(2)Ω(10)tP(100)(0.0,0...
helper = <veusz.plugins.datasetplugin.DatasetPluginHelper object at 0x129be9650>
dsy = array([0.1, 0.1, 2. , ..., 2.2, 2.4, 2.5])
dsx = array([1.7, 2.2, 0.3, ..., 0.1, 0. , 0. ])
miny = 0.0
maxy = 5.0
minx = 0.0
maxx = 5.0
Frame histogram2d (File <array_function internals>, line 198)
args = (array([0.1, 0.1, 2. , ..., 2.2, 2.4, 2.5]), array([1.7, 2.2, 0.3, ..., 0.1, 0. , 0. ]))
kwargs = {'bins': [51, 51], 'range': [[0.0, 5.0], [0.0, 5.0]], 'normed': False}
msg = "_histogram2d_dispatcher() got an unexpected keyword argument 'normed'"
disp_name = '_histogram2d_dispatcher'
new_msg = "histogram2d() got an unexpected keyword argument 'normed'"
dispatcher = <function _histogram2d_dispatcher at 0x1172bcb80>
implementation = <function histogram2d at 0x1172bce00>
public_api = <function histogram2d at 0x1172bcea0>