MCPcopy Index your code
hub / github.com/PyQt5/PyQt / ScatterDataModifier

Class ScatterDataModifier

QtDataVisualization/ScatterVisualization.py:61–186  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

59
60
61class ScatterDataModifier(QObject):
62 numberOfItems = 3600
63 curveDivider = 3.0
64 lowerNumberOfItems = 900
65 lowerCurveDivider = 0.75
66
67 backgroundEnabledChanged = pyqtSignal(bool)
68 gridEnabledChanged = pyqtSignal(bool)
69 shadowQualityChanged = pyqtSignal(int)
70 fontChanged = pyqtSignal(QFont)
71
72 def __init__(self, scatter):
73 super(ScatterDataModifier, self).__init__()
74
75 self.m_graph = scatter # Q3DScatter实例
76 self.m_fontSize = 40.0
77 self.m_style = QAbstract3DSeries.MeshSphere
78 self.m_smooth = True
79 self.m_itemCount = self.lowerNumberOfItems
80 self.m_curveDivider = self.lowerCurveDivider
81
82 # 设置当前主题类型
83 self.m_graph.activeTheme().setType(Q3DTheme.ThemeEbony)
84 # 设置当前主题的字体
85 font = self.m_graph.activeTheme().font()
86 font.setPointSize(self.m_fontSize)
87 self.m_graph.activeTheme().setFont(font)
88 # 设置阴影质量
89 self.m_graph.setShadowQuality(QAbstract3DGraph.ShadowQualitySoftLow)
90 self.m_graph.scene().activeCamera().setCameraPreset(
91 Q3DCamera.CameraPresetFront)
92
93 proxy = QScatterDataProxy()
94 series = QScatter3DSeries(proxy)
95 series.setItemLabelFormat(
96 "@xTitle: @xLabel @yTitle: @yLabel @zTitle: @zLabel")
97 series.setMeshSmooth(self.m_smooth)
98 self.m_graph.addSeries(series)
99
100 self.addData()
101
102 def addData(self):
103 # 添加数据
104 self.m_graph.axisX().setTitle("X")
105 self.m_graph.axisY().setTitle("Y")
106 self.m_graph.axisZ().setTitle("Z")
107
108 dataArray = []
109
110 limit = math.sqrt(self.m_itemCount) / 2.0
111 i = -limit
112 while i < limit:
113 j = -limit
114 while j < limit:
115 itm = QScatterDataItem(
116 QVector3D(i + 0.5,
117 math.cos(
118 math.radians((i * j) / self.m_curveDivider)),

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected