2016-12-09 22 views
0

setBrushでリスト引数を渡そうとしています。pyqtgraph散布図セットブラシ

Traceback (most recent call last): File "", line 1, in

File "C:\Python34\lib\site-packages\pyqtgraph\graphicsItems\ScatterPlotItem.py", line 467, in setBrush self.updateSpots(dataSet)

File "C:\Python34\lib\site-packages\pyqtgraph\graphicsItems\ScatterPlotItem.py", line 553, in updateSpots self.fragmentAtlas.getAtlas() # generate atlas so source widths are available.

File "C:\Python34\lib\site-packages\pyqtgraph\graphicsItems\ScatterPlotItem.py", line 193, in getAtlas self.buildAtlas()

File "C:\Python34\lib\site-packages\pyqtgraph\graphicsItems\ScatterPlotItem.py", line 143, in buildAtlas img = renderSymbol(key[0], key[1], sourceRect.pen, sourceRect.brush)

File "C:\Python34\lib\site-packages\pyqtgraph\graphicsItems\ScatterPlotItem.py", line 74, in renderSymbol drawSymbol(p, symbol, size, pen, brush)

File "C:\Python34\lib\site-packages\pyqtgraph\graphicsItems\ScatterPlotItem.py", line 49, in drawSymbol painter.setBrush(brush) TypeError: arguments did not match any overloaded call: QPainter.setBrush(QBrush): argument 1 has unexpected type 'str' QPainter.setBrush(Qt.BrushStyle): argument 1 has unexpected type 'str'

にはどうすればsetBrushもののリストを渡すことができます。私はこのコードを実行すると、以下のように

from pyqtgraph.Qt import QtGui, QtCore 
import pyqtgraph as pg 
import numpy as np 

app = QtGui.QApplication([]) 
mw = QtGui.QMainWindow() 
mw.resize(800,800) 
view = pg.GraphicsLayoutWidget() 
mw.setCentralWidget(view) 
mw.setWindowTitle('pyqtgraph example: ScatterPlot') 
w1 = view.addPlot() 
x = [1,2,3,4,5,6,7,8,9,10] 
y = [10,8,6,4,2,20,18,16,14,12] 
s1 = pg.ScatterPlotItem(x,y,size=10, pen=pg.mkPen(None), brush=pg.mkBrush(255, 255, 255, 120)) 
s1.setBrush(['r']*10, mask=None) 
w1.addItem(s1) 
mw.show() 

、私はエラーを取得していますか?私は別のポイントに異なる色を割り当てる必要があります。

答えて

0

例によってs.setBrush(QtGui.QBrush({your parameters})) を追加:

  • をQtGui.QBrush()
  • QtGui.QBrush(Qt.BrushStyleのBS)
  • QtGui.QBrush(QColor色、Qt.BrushStyleスタイル= Qtの。 SolidPattern)
  • QtGui.QBrush(Qt.GlobalColor色、Qt.BrushStyleスタイル= Qt.SolidPattern)
  • QtGui.QBrush(QColor色、QPixmapのピックスマップ)
  • QtGui.QBrush(Qt.GlobalColor色、QPixmapのピックスマップ)
  • QtGui.QBrush(QPixmapのピックスマップ)
  • QtGui.QBrush(QImageの画像)
  • QtGui.QBrush(QGradient勾配)
  • QtGui.QBrush (QBrushブラシ)
  • QtGui.QBrush(QVariantバリアント)コード内

import sys 
from pyqtgraph.Qt import QtGui, QtCore 
import pyqtgraph as pg 
import numpy as np 

app = QtGui.QApplication(sys.argv) 
mw = QtGui.QMainWindow() 
mw.resize(800, 800) 
view = pg.GraphicsLayoutWidget() 
mw.setCentralWidget(view) 
mw.setWindowTitle('pyqtgraph example: ScatterPlot') 
w1 = view.addPlot() 
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
y = [10, 8, 6, 4, 2, 20, 18, 16, 14, 12] 

# Create seed for the random 
time = QtCore.QTime.currentTime() 
QtCore.qsrand(time.msec()) 

for i in range(len(x)): 
    s = pg.ScatterPlotItem([x[i]], [y[i]], size=10, pen=pg.mkPen(None)) # brush=pg.mkBrush(255, 255, 255, 120)) 
    s.setBrush(QtGui.QBrush(QtGui.QColor(QtCore.qrand() % 256, QtCore.qrand() % 256, QtCore.qrand() % 256))) 
    w1.addItem(s) 
mw.show() 
sys.exit(QtGui.QApplication.exec_()) 

出力:

enter image description here

あなたが最初の5点(X:1-5)のために赤い色を設定したい場合:

import sys 
from pyqtgraph.Qt import QtGui 
import pyqtgraph as pg 

app = QtGui.QApplication(sys.argv) 
mw = QtGui.QMainWindow() 
mw.resize(800, 800) 
view = pg.GraphicsLayoutWidget() 
mw.setCentralWidget(view) 
mw.setWindowTitle('pyqtgraph example: ScatterPlot') 
w1 = view.addPlot() 
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
y = [10, 8, 6, 4, 2, 20, 18, 16, 14, 12] 

color = QtGui.QColor("#0000FF") 
s = pg.ScatterPlotItem(x[:5], y[:5], size=10, pen=pg.mkPen(None), brush='r') 
w1.addItem(s) 
s = pg.ScatterPlotItem(x[5:], y[5:], size=10, pen=pg.mkPen(None), brush='b') 
w1.addItem(s) 
mw.show() 
sys.exit(QtGui.QApplication.exec_()) 
別の5点(6-10 x)のため、青

enter image description here

+0

はどうもありがとう:)私は最初の5点(X:1-5)のための色の赤setbrushことができ、他の5点(:6-10 x)のために、青の? – jennifer

+0

@Surabhi私の答えが正しいとマークするのに役立ちます – eyllanesc

+0

@Surabhi私の解決策を更新 – eyllanesc