Update d3panels to 1.8.2, with improvement to
formatAxis()
. This should fix Issue #77.
Fix qtlchartsversion()
to handle case like
“0.14”
Upgrade D3 to 7.0.0 (and d3panels to 1.8.0)
Allow iplot()
to not take y
argument
(in which case we move x
to y
and take
x
to be indices). (Issue #73)
Add horizontal
argument to iplotMap()
to lay out the chromosomes horizontally. This was already available as a
chartOpts option, but this makes it easier. (Issue #67)
Fix error in itriplot()
for case of a single point
(Issue #76)
Replaced use of d3-tip with custom tool tips, and upgraded to D3 version 5.
itriplot()
will now take labels from the column
names of the probabilities, p
. Also has an option for grid
lines.
Allowed title
as chart option in
iplotMScanone()
, iplotScanone()
,
iheatmap()
.
Added scat_title
chart option to
ipleiotropy()
, for a title on the scatterplot
panel.
Filled in some missing text in the help info for
iplotMScanone()
.
Converted documentation to markdown.
Fixed use of class()
, replacing constructions like
"cross" %in% class(object)
with
inherits(object, "cross")
.
Fix bug in idotplot()
so that it works with a single
group.
Fix bug in iplotMap()
so that the drop-down menu
works in Firefox.
Update to use CoffeeScript v 2.2.2. Using babel to compile to ES5.
Switch from bower to yarn for javascript dependency management.
Revise scat2scat()
so that the chart options
xlab2
and ylab2
can be vectors of length of
scat2data
, so that each dataset can have different x- and
y-axis labels. Default is to take them from the column names of the
datasets in scat2data
.
All charts can now take a heading
and a
footer
within chartOpts
. The former will make
an <h2>
heading above the figure; the latter will
make a <div>
at the bottom. These are intended for
stand-alone html files.
In the caption
chart option, now using
.html()
rather than .text()
so that you can
insert a bit of html (such as <b>
or
<code>
).
caption
within
chartOpts
which will show up as text below the figure. This
is intended for stand-alone html files.Added new tool for exploring pleiotropy between two traits,
ipleiotropy()
.
Fixed X chromosome case in iplotScantwo, so that only relevant two-locus genotypes are shown.
Added new chart option pointsize
for
iplotCorr
.
In the coffeescript functions, ensure that list arguments like
margin
have all of the necessary components. This avoid the
problem of everything being messed up if for example margin
is specified within defining margin.inner
.
lodcharts
now includes a quantitative scale for
position on the x-axis in the case of a single chromosome
In iplotScanone
and iplotScantwo
, in
phenotype x genotype plots when switching between markers on the same
chromosome, animate the movement of the points rather than destroying
and re-creating the panel.
Rewrite underlying javascript to use new version of d3panels.
Add a new chart, scat2scat
. The idea is to summarize
each of a long series of scatterplots with a pair of numbers. Then a
scatterplot of those summary statistics is linked to the underlying
details: click on a point in the main scatterplot and have the
underlying scatterplot be shown.
Add a new chart, itriplot
, for plotting trinomial
probabilities, represented as points in an equilateral
triangle.
Refactor iplotPXG
and idotplot
so that
idotplot
is the main function, and iplotPXG
calls it.
Add some additional options, such as horizontal
for
iplotMap
and iplotPXG
.
Change the name of some options, such as linecolor
and linewidth
in iplotCurves
(in place of
strokecolor
and strokewidth
).
Add a digits
argument for all plot functions, with
the aim to reduce the size of the datasets included in the resulting
charts.
Removed the vignettes from the package (for complicated reasons); they’re available at the R/qtlcharts website.
Fix proliferation of tool tips
For use with Shiny, clear SVG before drawing
Changed license and author list in order to post the package on CRAN, https://cran.r-project.org
idotplot
and iplot
now use the names of
the input data as individual IDs if indID
is missing or
NULL
.
iplotScanone
with
pxgtype="ci"
. In the case of phenotypes with missing
values, the confidence intervals were incorrect.iplotCorr
has argument scatterplots
that
controls whether scatterplots will be shown when clicking on pixels in
the heatmap. (If scatterplots=FALSE
, we skip the
scatterplots.)iplotMScanone
can plot just points (rather than
curves) for the LOD scores and QTL effects in the lower and right-hand
panels.
Fix a bug in iplotMScanone
(x-axis labels in
right-hand plot weren’t being shown)
setScreenSize
function for controlling the
default sizes of charts.Added idotplot
function for plotting a quantitative
variable in different categories. (It’s just like iplotPXG
,
but with data values not connected to a cross object.)
Reorganized the d3panels code: just using
d3panels.min.js
and d3panels.min.css
rather
than linking to js code for individual panels.
Refactored the entire package to use htmlwidgets. A big advantage is that the charts now work nicely within RStudio.
To save a plot to a file, you now need to assign the result of a
plot function to an object and then use the htmlwidgets function
saveWidget
.
library(qtlcharts)
library(qtl)
data(hyper)
<- calc.genoprob(hyper, step=1)
hyper <- scanone(hyper)
out <- iplotScanone(out, hyper)
chart ::saveWidget(chart, file="hyper_scanone.html") htmlwidgets
It’s now simpler to include interactive charts within an R
Markdown document. You simply make the plots in a code chunk in the way
that you would at the R prompt. There’s no longer a need to worry about
print_qtlcharts_resources()
or
results="asis"
.
Separated out the basic panel functions as a separate repository, d3panels, to make it easier for them to be used separately from R/qtlcharts.