Hello,
I’m trying to modify something in my experiment :
So first there are two clouds of dots showing, with one rating scale under each cloud, then we show a “partner”'s rating, which is coded actually on a normal distribution around the first rating. So on a second scale you see your first rating and the partner’s rating. There are two conditions : agreement & disagreement, in disagreement the partner’s rating is on the opposite scale and vice versa.
rating_left = visual.RatingScale(win=win, name='rating_left', marker='triangle', size=1.0,
pos=[-0.5, -0.6], low=0, high=100, labels=['0', '100'],
scale='', tickHeight=0, markerColor='blue')
rating_right = visual.RatingScale(win=win, name='rating_right', marker='triangle', size=1.0,
pos=[0.5, -0.6], low=0, high=100, labels=['0', '100'],
scale='', tickHeight=0, markerColor='blue')
ratingLeft = rating_left.getRating()
ratingRight = rating_right.getRating()
if ratingLeft == None:
first_rating = ratingRight
else:
first_rating = ratingLeft
rating1_absL = abs(ratingLeft)
thisExp.addData('first_ratingL', ratingLeft)
thisExp.addData('first_ratingR', ratingRight)
thisExp.addData('first_rating', first_rating)
if first_rating == ratingRight:
if trialType == 'Agreement':
if partner_rating_side == 'A':
partner_rating = int(np.random.normal(loc= first_rating+10, scale=5.0, size=None))
if partner_rating > 100:
partner_rating = 100
elif partner_rating < 0:
partner_rating = 0
partner_left = ''
partner_right = partner_rating
elif partner_rating_side == 'B':
partner_rating = int(np.random.normal(loc= first_rating-10, scale=5.0, size=None))
if partner_rating > 100:
partner_rating = 100
elif partner_rating < 0:
partner_rating = 0
partner_left = ''
partner_right = partner_rating
elif trialType == 'Disagreement':
if partner_rating_side == 'A':
partner_rating = int(np.random.normal(loc= (first_rating+10), scale=5.0, size=None))
if partner_rating > 100:
partner_rating = 100
elif partner_rating < 0:
partner_rating = 0
partner_left = partner_rating
partner_right = ''
elif partner_rating_side == 'B':
partner_rating = int(np.random.normal(loc= (first_rating-10), scale=5.0, size=None))
if partner_rating > 100:
partner_rating = 100
elif partner_rating < 0:
partner_rating = 0
partner_left = partner_rating
partner_right = ''
else:
if trialType == 'Agreement':
if partner_rating_side == 'A':
partner_rating = int(np.random.normal(loc= first_rating+10, scale=5.0, size=None))
if partner_rating > 100:
partner_rating = 100
elif partner_rating < 0:
partner_rating = 0
partner_left = partner_rating
partner_right = ''
elif partner_rating_side == 'B':
partner_rating = int(np.random.normal(loc= first_rating-10, scale=5.0, size=None))
if partner_rating > 100:
partner_rating = 100
elif partner_rating < 0:
partner_rating = 0
partner_left = partner_rating
partner_right = ''
elif trialType == 'Disagreement':
if partner_rating_side == 'A':
partner_rating = int(np.random.normal(loc= (first_rating+10), scale=5.0, size=None))
if partner_rating > 100:
partner_rating = 100
elif partner_rating < 0:
partner_rating = 0
partner_left = ''
partner_right = partner_rating
elif partner_rating_side == 'B':
partner_rating = int(np.random.normal(loc= (first_rating-10), scale=5.0, size=None))
if partner_rating > 100:
partner_rating = 100
elif partner_rating < 0:
partner_rating = 0
partner_left = ''
partner_right = partner_rating
# store to data file
thisExp.addData('partner_rating', partner_rating)
thisExp.addData('partner_ratingL', partner_left)
thisExp.addData('partner_ratingR', partner_right)
partner_ratingL = visual.RatingScale(win=win, name='partner_ratingL', marker='triangle', size=1.0,
pos=[-0.5, -0.6], low=0, high=100, labels=['0', '100'],
scale='', tickHeight=0, markerStart=partner_left, markerColor='orange', showAccept = False)
partner_ratingR = visual.RatingScale(win=win, name='partner_ratingR', marker='triangle', size=1.0,
pos=[0.5, -0.6], low=0, high=100, labels=['0', '100'],
scale='', tickHeight=0, markerStart=partner_right, markerColor='orange', showAccept = False)
first_ratingL = visual.RatingScale(win=win, name='first_ratingL', marker='triangle', size=1.0,
pos=[-0.5, -0.6], low=0, high=100, labels=['0', '100'],
scale='', tickHeight=0, markerStart=ratingLeft, markerColor='blue', showAccept = False)
first_ratingR = visual.RatingScale(win=win, name='first_ratingR', marker='triangle', size=1.0,
pos=[0.5, -0.6], low=0, high=100, labels=['0', '100'],
scale='', tickHeight=0, markerStart=ratingRight, markerColor='blue', showAccept = False)
But it seems that Psychopy gets really confused because the scales have the same low & high, in the csv data file all the calculations are good, but when it comes to showing the rating on the scales it gets confused, does anybody have an idea of how i could make it appear correctly?