Millisecond Forums

Combining pictures with radiobutton questions

https://forums.millisecond.com/Topic17983.aspx

By Wenkuo - 12/15/2015

Hi,

For my task in inquisit, I've got a few (hopefully) small problems that I haven't been able to figure out.

What I want to do is the following:

First, I present 20 different pictures with 2 types of information (the information is included in the picture, so no need to do that in Inquisit). After this, I will show the 20 pictures once more. This time without the information. Instead, I want to combine each picture with 2 questions (radiobutton). Each question will be shown one by one. 

As an example: I present a picture of a fish with the information dangerous/water. After this, I want to present a picture of just the fish with 1 question asking about the dangerousness (e.g. an option with dangerous and an option with not dangerous). After this question is answered, I want to present the picture again, but this time for location (e.g. an option for land and an option for water). 

As it is, my current code first asks for danger for all 20 pictures and after that, it asks for location for all 20 pictures. But as can be seen from the example, this isn't what I want. So I'm wondering if there is any way to change this. A second problem that I ran into are the positions of the questions and the picture. I can't seem to get them both in the middle of the screen. Lastly, whenever I select an answer with the radiobutton, it stays on that answer. As in, if I select 'dangerous', it will stay with that option for all subsequent questions (untill I select 'not dangerous', but then it stays on 'not dangerous' for all subsequent questions). I want for this to revert to a blank option after every question, if this is possible. 

I hope that this isn't too much of a problem!

This is how my current code looks like:

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Creating the picture list &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

<item animal_images_info>
/ 1 = "Alligator.jpg"
/ 2 = "BeardedSeal.jpg"
/ 3 = "BlueOctopus.jpg"
/ 4 = "Bluegill.jpg"
/ 5 = "Cassowary.jpg"
/ 6 = "Cougar.jpg"
/ 7 = "FerDeLance.jpg"
/ 8 = "Frog.jpg"
/ 9 = "Garter.jpg"
/ 10 = "GreenlandShark.jpg"
/ 11 = "KomodoDragon.jpg"
/ 12 = "LakeTrout.jpg"
/ 13 = "Mallard.jpg"
/ 14 = "Pangolin.jpg"
/ 15 = "Piranha.jpg"
/ 16 = "Pitohui.jpg"
/ 17 = "PolarBear.jpg"
/ 18 = "Raccoon.jpg"
/ 19 = "SeaLamprey.jpg"
/ 20 = "SlowLoris.jpg"
</item>

<item animal_images_no_info>
/ 1 = "AlligatorN.jpg"
/ 2 = "BeardedSealN.jpg"
/ 3 = "BlueOctopusN.jpg"
/ 4 = "BluegillN.jpg"
/ 5 = "CassowaryN.jpg"
/ 6 = "CougarN.jpg"
/ 7 = "FerDeLanceN.jpg"
/ 8 = "FrogN.jpg"
/ 9 = "GarterN.jpg"
/ 10 = "GreenlandSharkN.jpg"
/ 11 = "KomodoDragonN.jpg"
/ 12 = "LakeTroutN.jpg"
/ 13 = "MallardN.jpg"
/ 14 = "PangolinN.jpg"
/ 15 = "PiranhaN.jpg"
/ 16 = "PitohuiN.jpg"
/ 17 = "PolarBearN.jpg"
/ 18 = "RaccoonN.jpg"
/ 19 = "SeaLampreyN.jpg"
/ 20 = "SlowLorisN.jpg"
</item>

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Setting the defaults on how each picture is shown &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

<picture animal_info_default>
/ items = animal_images_info
/ position = (50%, 50%)
/ size = (90%, 90%)
/ select = noreplacenorepeat
</picture>

<picture animal_no_info_default>
/ items = animal_images_no_info
/ position = (50%, 50%)
/ size = (90%, 90%)
/ select = noreplacenorepeat
</picture>

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Creating the stimulusframe in which the images are shown &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

<trial animal_info_presentation>
/ stimulusframes = [1 = animal_info_default]
/ showmousecursor = false
/ timeout = 1000
</trial>

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Creating the question for recall &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

<radiobuttons animal_danger_recall>
/ caption = ""
/ options = ("Gevaarlijk", "Ongevaarlijk")
/ required = true
</radiobuttons>

<radiobuttons animal_location_recall>
/ caption = ""
/ options = ("Land", "Water")
/ required = true
</radiobuttons>

<image animal_questions>
/ items = animal_images_no_info
/ position = (50%, 50%)
/ size = (90%, 90%)
</image>

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Placing the questions in a survey &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

<surveypage animal_danger_question>
/ questions = [1 = animal_danger_recall; 2 = animal_questions]
/ showpagenumbers = false
/ showquestionnumbers = false
/ showmousecursor = true
</surveypage>

<surveypage animal_location_question>
/ questions = [1 = animal_location_recall; 2 = animal_questions]
/ showpagenumbers = false
/ showquestionnumbers = false
/ showmousecursor = true
</surveypage>

<survey all_animal_questions>
/ finishlabel = "Einde"
/ fontstyle = ("Times New Roman", 28, false, false, false, false, 5)
/ itemfontstyle = ("Times New Roman", 28, false, false, false, false, 5)
/ itemspacing = 2%
/ navigationbuttonfontstyle = ("Times New Roman", 28, false, false, false, false, 5)
/ nextbuttonposition = (80%, 80%)
/ nextlabel = "Volgende"
/ orientation = vertical
/ pages = [1-20 = animal_danger_question; 21-40 = animal_location_question]
/ showbackbutton = false
/ showpagenumbers = false
/ showquestionnumbers = false
</survey>

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Creating the instructions for the study &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

<instruct>
/ nextlabel = "Continue"
/ lastlabel = "Continue"
/ prevkey = (0)
/ inputdevice = mouse
/ windowsize = (80%, 85%)
/ screencolor = (255, 255, 255)
/ fontstyle = ("Times New Roman", 28, false, false, false, false, 5)
/ txcolor = (0, 0, 0)
</instruct>

<page pre_instructions>
^^In a bit, you will be shown 20 different pictures. Each of these pictures will contain 2 types of information.
^Please memorise the information, because there will be questions about it at a later date.
</page>

<page post_instructions>
^^Thank you very much for your participation.
</page>

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Creating the settings for data saving &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

<data>
/ columns = [date, time, subject, trialcode, trialnum, stimulusitem, stimulus, response]
</data>

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Setting up the actual study &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

<block presentation>
/ preinstructions = (pre_instructions)
/ trials = [1-20 = animal_info_presentation]
/ branch = [survey.all_animal_questions]
/ postinstructions = (post_instructions)
</block>

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Combining everything into an experiment &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

<expt animal_recalling>
/ blocks = [1 = presentation]
</expt>



By Wenkuo - 12/15/2015

I've now managed to place both the pictures and the questions in the middle. I haven't figured out the other 2 problems yet.

I also have no idea on how to edit my previous post, so that's why I posted this reply. 
By Dave - 12/15/2015

In essence you do something like this, i.e. use <likert> elements and run them via the main <block>:

<block presentation>
/ trials = [1-20=sequence(animal_info_presentation, animal_danger_recall, animal_location_recall)]
</block>

<trial animal_info_presentation>
/ stimulusframes = [1 = animal_info_default]
/ showmousecursor = false
/ timeout = 1000
</trial>

<likert animal_danger_recall>
/ stimulusframes = [1 = animal_no_info_default]
/ anchors = [1="Dangerous"; 2="Not Dangerous"]
/ numpoints = 2
/ anchorwidth = 25%
/ position = (50%, 90%)
</likert>

<likert animal_location_recall>
/ stimulusframes = [1 = animal_no_info_default]
/ anchors = [1="Land"; 2="Water"]
/ numpoints = 2
/ anchorwidth = 25%
/ position = (50%, 90%)
</likert>

<text animal_info_default>
/ items = animal_images_info
/ position = (50%, 50%)
/ size = (50%, 50%)
/ select = noreplace
</text>

<text animal_no_info_default>
/ items = animal_images_no_info
/ position = (50%, 50%)
/ size = (50%, 50%)
/ select = text.animal_info_default.currentindex
</text>

<item animal_images_info>
/ 1 = "Alligator.jpg"
/ 2 = "BeardedSeal.jpg"
/ 3 = "BlueOctopus.jpg"
/ 4 = "Bluegill.jpg"
/ 5 = "Cassowary.jpg"
/ 6 = "Cougar.jpg"
/ 7 = "FerDeLance.jpg"
/ 8 = "Frog.jpg"
/ 9 = "Garter.jpg"
/ 10 = "GreenlandShark.jpg"
/ 11 = "KomodoDragon.jpg"
/ 12 = "LakeTrout.jpg"
/ 13 = "Mallard.jpg"
/ 14 = "Pangolin.jpg"
/ 15 = "Piranha.jpg"
/ 16 = "Pitohui.jpg"
/ 17 = "PolarBear.jpg"
/ 18 = "Raccoon.jpg"
/ 19 = "SeaLamprey.jpg"
/ 20 = "SlowLoris.jpg"
</item>

<item animal_images_no_info>
/ 1 = "AlligatorN.jpg"
/ 2 = "BeardedSealN.jpg"
/ 3 = "BlueOctopusN.jpg"
/ 4 = "BluegillN.jpg"
/ 5 = "CassowaryN.jpg"
/ 6 = "CougarN.jpg"
/ 7 = "FerDeLanceN.jpg"
/ 8 = "FrogN.jpg"
/ 9 = "GarterN.jpg"
/ 10 = "GreenlandSharkN.jpg"
/ 11 = "KomodoDragonN.jpg"
/ 12 = "LakeTroutN.jpg"
/ 13 = "MallardN.jpg"
/ 14 = "PangolinN.jpg"
/ 15 = "PiranhaN.jpg"
/ 16 = "PitohuiN.jpg"
/ 17 = "PolarBearN.jpg"
/ 18 = "RaccoonN.jpg"
/ 19 = "SeaLampreyN.jpg"
/ 20 = "SlowLorisN.jpg"
</item>

You need to change the <text> elements back to <picture> elements to use your images (which I don't have), i.e.

<picture animal_info_default>
/ items = animal_images_info
/ position = (50%, 50%)
/ size = (50%, 50%)
/ select = noreplace
</picture>

<picture animal_no_info_default>
/ items = animal_images_no_info
/ position = (50%, 50%)
/ size = (50%, 50%)
/ select = picture.animal_info_default.currentindex
</picture>
By Wenkuo - 12/24/2015

Hi Dave,

Thank you for the fast and very useful answer!

I was wondering though, is it possible to use radiobuttons instead of likert for this? I can understand why likert works well, since you can add in stimulusframes in likert. But you can't do that with radiobuttons, so is there any way to do it with radiobuttons?
By Dave - 12/26/2015

You can use <radiobuttons> and display the <picture> element via the <surveypage>'s /stimulusframes. This has some drawbacks, though, and I would not recommend it in a case like yours. Using <likert> or standard <trial> elements is the much better option here.
By Wenkuo - 1/4/2016

Hi Dave,

Thank you for the fast answer!

I have one (hopefully small) question left.

This is my current ask:

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Creating the picture lists &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

<item animal_images_info>
/ 1 = "Alligator.jpg"
/ 2 = "BeardedSeal.jpg"
/ 3 = "BlueOctopus.jpg"
/ 4 = "Bluegill.jpg"
/ 5 = "Cassowary.jpg"
/ 6 = "Cougar.jpg"
/ 7 = "FerDeLance.jpg"
/ 8 = "Frog.jpg"
/ 9 = "Garter.jpg"
/ 10 = "GreenlandShark.jpg"
/ 11 = "KomodoDragon.jpg"
/ 12 = "LakeTrout.jpg"
/ 13 = "Mallard.jpg"
/ 14 = "Pangolin.jpg"
/ 15 = "Piranha.jpg"
/ 16 = "Pitohui.jpg"
/ 17 = "PolarBear.jpg"
/ 18 = "Raccoon.jpg"
/ 19 = "SeaLamprey.jpg"
/ 20 = "SlowLoris.jpg"
</item>

<item animal_images_no_info>
/ 1 = "AlligatorN.jpg"
/ 2 = "BeardedSealN.jpg"
/ 3 = "BlueOctopusN.jpg"
/ 4 = "BluegillN.jpg"
/ 5 = "CassowaryN.jpg"
/ 6 = "CougarN.jpg"
/ 7 = "FerDeLanceN.jpg"
/ 8 = "FrogN.jpg"
/ 9 = "GarterN.jpg"
/ 10 = "GreenlandSharkN.jpg"
/ 11 = "KomodoDragonN.jpg"
/ 12 = "LakeTroutN.jpg"
/ 13 = "MallardN.jpg"
/ 14 = "PangolinN.jpg"
/ 15 = "PiranhaN.jpg"
/ 16 = "PitohuiN.jpg"
/ 17 = "PolarBearN.jpg"
/ 18 = "RaccoonN.jpg"
/ 19 = "SeaLampreyN.jpg"
/ 20 = "SlowLorisN.jpg"
</item>

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Setting the defaults on how each picture is shown &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

<picture animal_info_default>
/ items = animal_images_info
/ position = (50%, 50%)
/ size = (50%, 50%)
/ select = noreplacenorepeat
</picture>

<picture animal_no_info_default>
/ items = animal_images_no_info
/ position = (50%, 50%)
/ size = (50%, 50%)
/ select = noreplacenorepeat
</picture>

<picture animal_no_info_default2>
/ items = animal_images_no_info
/ position = (50%, 50%)
/ size = (50%, 50%)
/ select = picture.animal_no_info_default.currentindex
</picture>

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Creating the stimulusframe in which the images are shown &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& This is only used for the initial presentation of the pictures with their information &&&&&&&

<trial animal_info_presentation>
/ stimulusframes = [1 = animal_info_default]
/ showmousecursor = false
/ timeout = 100
</trial>

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Creating the questions for recall &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

<likert animal_danger_recall>
/ stimulusframes = [1 = animal_no_info_default]
/ anchors = [1="Gevaarlijk"; 2="Ongevaarlijk"]
/ numpoints = 2
/ anchorwidth = 200
/ position = (50%, 90%)
</likert>

<likert animal_location_recall>
/ stimulusframes = [1 = animal_no_info_default2]
/ anchors = [1="Land"; 2="Water"]
/ numpoints = 2
/ anchorwidth = 200
/ position = (50%, 90%)
</likert>

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Creating the instructions for the study &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

<instruct>
/ nextlabel = "Continue"
/ lastlabel = "Continue"
/ prevkey = (0)
/ inputdevice = mouse
/ windowsize = (80%, 85%)
/ screencolor = (255, 255, 255)
/ fontstyle = ("Times New Roman", 28, false, false, false, false, 5)
/ txcolor = (0, 0, 0)
</instruct>

<page pre_instructions>
^^In a bit, you will be shown 20 different pictures. Each of these pictures will contain 2 types of information.
^Please memorise the information, because there will be questions about it at a later date.
</page>

<page post_instructions>
^^Thank you very much for your participation.
</page>

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Creating the settings for data saving &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

<data>
/ columns = [date, time, subject, trialcode, trialnum, stimulusitem, stimulus, response]
</data>

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Setting up the actual study &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

<block presentation_info>
/ trials = [1-20 = animal_info_presentation]
</block>

<block presentation_recall>
/ trials = [1-20 = sequence(animal_danger_recall, animal_location_recall)]
</block>

<expt all>
/ blocks = [1 = presentation_info; 2 = presentation_recall]
</expt>

I want to keep this structure but replace the likert button with radiobuttons, because I think that radiobuttons are clearer as an option choice in this particular case. I was wondering if there is any way to do this when using <survey>? This is because I also want to add in multiple instructions, and I want to continue using the 'sequence' in 1-20 = sequence(animal_danger_recall, animal_location_recall). 
By Dave - 1/4/2016

The <survey> element is the *wrong* thing to use here. A <survey> element is a special type of <block>, which -- notably -- enforces a different data format (one line per subject, one column per *question*; i.e. so-called "wide" data format). That's not what you want / need here. You need the "long" data format (one line *per trial*).

A <surveypage> is a special type of <trial>, i.e., you can run it via a standard <block>'s /trials attribute just like any other <trial>, <openended> or <likert> element. In short:

<surveypage animal_danger_recall>
/ stimulusframes = [1 = animal_no_info_default]
...
</surveypage>

<surveypage animal_location_recall>
/ stimulusframes = [1 = animal_no_info_default2]
...
</surveypage>

<block presentation_recall>
/ trials = [1-20 = sequence(animal_danger_recall, animal_location_recall)]
</block>

You just need to define your two <radiobuttons> elements and use the respective <surveypage>'s /questions attribute to display them.
By Wenkuo - 1/10/2016

Hi Dave,

Thank you for the help, it works fine now!
By Charlene_W - 9/15/2020

Dave - 1/4/2016
The <survey> element is the *wrong* thing to use here. A <survey> element is a special type of <block>, which -- notably -- enforces a different data format (one line per subject, one column per *question*; i.e. so-called "wide" data format). That's not what you want / need here. You need the "long" data format (one line *per trial*).

A <surveypage> is a special type of <trial>, i.e., you can run it via a standard <block>'s /trials attribute just like any other <trial>, <openended> or <likert> element. In short:

<surveypage animal_danger_recall>
/ stimulusframes = [1 = animal_no_info_default]
...
</surveypage>

<surveypage animal_location_recall>
/ stimulusframes = [1 = animal_no_info_default2]
...
</surveypage>

<block presentation_recall>
/ trials = [1-20 = sequence(animal_danger_recall, animal_location_recall)]
</block>

You just need to define your two <radiobuttons> elements and use the respective <surveypage>'s /questions attribute to display them.

Hello Dave,

Is it possible to display a different image with every radiobuttons item? Or do I need to make each radiobuttons item into its own surveypage to display the image I want? 

Thank you so much!
By Dave - 9/15/2020

Charlene_W - 9/15/2020
Dave - 1/4/2016
The <survey> element is the *wrong* thing to use here. A <survey> element is a special type of <block>, which -- notably -- enforces a different data format (one line per subject, one column per *question*; i.e. so-called "wide" data format). That's not what you want / need here. You need the "long" data format (one line *per trial*).

A <surveypage> is a special type of <trial>, i.e., you can run it via a standard <block>'s /trials attribute just like any other <trial>, <openended> or <likert> element. In short:

<surveypage animal_danger_recall>
/ stimulusframes = [1 = animal_no_info_default]
...
</surveypage>

<surveypage animal_location_recall>
/ stimulusframes = [1 = animal_no_info_default2]
...
</surveypage>

<block presentation_recall>
/ trials = [1-20 = sequence(animal_danger_recall, animal_location_recall)]
</block>

You just need to define your two <radiobuttons> elements and use the respective <surveypage>'s /questions attribute to display them.

Hello Dave,

Is it possible to display a different image with every radiobuttons item? Or do I need to make each radiobuttons item into its own surveypage to display the image I want? 

Thank you so much!

You can put as many <image> and <radiobuttons> elements on a single surveypage as you want.