Hi
I've created a module to generate qqplots (https://github.com/iaingallagher/qqplots) - fee free to test, comment etc. And thanks for making this so (relatively) easy
I have a bug though, illustrated in the linked image below. With no variable to examine I have an error message in the plot presentation area. Any help would be appreciated.
Thanks,
Iain
https://github.com/iaingallagher/qqplot ... le_bug.png
[SOLVED] module bug
Re: module bug
Hi Iain,
Awesome! Good to hear that it's (relatively) easy. You're getting this error message because you are running the analyses no matter whether you assigned a variable or not. An easy fix is to first do a basic check and only run the code if a variable is assigned:
Cheers,
Ravi
Awesome! Good to hear that it's (relatively) easy. You're getting this error message because you are running the analyses no matter whether you assigned a variable or not. An easy fix is to first do a basic check and only run the code if a variable is assigned:
Code: Select all
if ( ! is.null(self$options$var)) {
qqvar <- self$data[,self$options$var] # data to examine
qqdata <- qqnorm(qqvar, plot.it=FALSE) # x & y coords
plotData <- data.frame(x=qqdata$x, y=qqdata$y) # assembl DF for plotting
image <- self$results$plot #set up for plotting
image$setState(plotData)
}
Ravi
-
- Posts: 15
- Joined: Sun Sep 24, 2017 10:51 am
Re: module bug
Great, thanks. Working properly now. I'll probably try and make a start on 'Group by' functionality soon. Expect more questions!
iain
iain
Re: module bug
Cool! Already a couple of suggestions/tips.
Instead of allowing the user to only one plot variable you can allow them to define multiple plot variables. This way it's easier to check normality for multiple variables. In order to do this you need to change a couple of things.
First, change the type of "Plot Variable" from "Variable" to "Variables" in qqplot.a.yaml. This changes the options UI so that you can drag multiple variables into the "Plot Variable" box.
Next, you need to change the qqplot.r.yaml file so that multiple plots will be displayed in the results. Instead of a results object of type "Image", you now first need a results object of type "Array". That would look something like this (check here for an example in jmv):
Last, you need to loop over your array results object as is done over here. So something like this:
If you have any questions, let me know.
Instead of allowing the user to only one plot variable you can allow them to define multiple plot variables. This way it's easier to check normality for multiple variables. In order to do this you need to change a couple of things.
First, change the type of "Plot Variable" from "Variable" to "Variables" in qqplot.a.yaml. This changes the options UI so that you can drag multiple variables into the "Plot Variable" box.
Next, you need to change the qqplot.r.yaml file so that multiple plots will be displayed in the results. Instead of a results object of type "Image", you now first need a results object of type "Array". That would look something like this (check here for an example in jmv):
Code: Select all
- name: plots
title: Q-Q Normal Plots
type: Array
description: an array of Q-Q plots
items: (vars)
template:
title: $key
type: Image
renderFun: .plot
Code: Select all
images <- self$results$plots
for (key in images$itemKeys) {
image <- images$get(key=key)
image$setState(plotData)
}