Skip to content

StatisticalPlots macro#1374

Open
pstaabp wants to merge 8 commits into
openwebwork:PG-2.21from
pstaabp:statistical-plots
Open

StatisticalPlots macro#1374
pstaabp wants to merge 8 commits into
openwebwork:PG-2.21from
pstaabp:statistical-plots

Conversation

@pstaabp
Copy link
Copy Markdown
Member

@pstaabp pstaabp commented Jan 30, 2026

This creates a StatisticalPlots macro, which contains the methods add_barplot, add_histogram, add_boxplot and add_scatterplot.

There are many options for each and there is documentation as well.

This also includes an add_rectangle method to the plots.pl macro which is a wrapper for the add_dataset for creating rectangles.

This is all in a single perl file, but can split out into modules like the plots macro.

I'm making this a draft and there are some additional options I'd like to add. I'm also open to renaming items and adding other plots before this goes in.

Here's a few test problems to show how to use it:

stats.zip

Note: updated zip file.

Comment thread macros/graph/plots.pl
@somiaj
Copy link
Copy Markdown
Contributor

somiaj commented Jan 31, 2026

I am a little confused, is the lib/Plots/StatPlot.pm an initial attempt, before making this fully a macro? Seems the same object and methods (which are more robust) are all included in macros/graph/StatisticalPlot.pl, which is probably a better place, and the file in lib/Plots should be removed?

Copy link
Copy Markdown
Member

@drgrice1 drgrice1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't delved to deeply into this yet, but here are some initial observations.

Lines 100 and 105 are too long. Shorten them. Ideally the POD would be kept even shorter than the usual 120 character limit. I think a max of 100 characters is a better limit for that, maybe even the classical 80 character limit would be better. The POD is all textual and if you are trying to read it directly in the code it makes it easier to read if it is not so long. Generally, you have kept the lines to 100 characters or less, but there are a few others that are inconsistently longer.

I think you should eliminate the StatPlot.pm module entirely. There is not much code there, and so just put that directly into the StatisticalPlots.pl macro file. The macro file is not that large anyway (at least at this point compared to many others). The plots.pl macro is bigger, and it only has 5 lines of actual code!

Comment thread macros/graph/plots.pl
Comment thread lib/Plots/Plot.pm Outdated
Comment thread macros/graph/StatisticalPlots.pl Outdated
next;
}
if (ref $image_item eq 'Plots::Plot') {
if (ref $image_item eq 'Plots::Plot' || ref $image_item eq 'Plots::StatPlot') {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it be worthwhile to make this more general, for future extension macros. Maybe call your package Plots::Plot::StatPlot, and then have this only check if ref $image_item starts with Plots::Plot, that way this won't have to be updated each time someone wants to extend Plots?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also think there are some other places that might need to be updated, I recall having to modify a few places to check for the ref being equal to Plots::Plot beyond just this place (for some older image macros).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally this would be an isa call. Then any object that derives from a Plots::Plot object would work here. Unfortunately, to properly do that you need the Scalar::Util::blessed method which is not available here. The correct way to check if an object, say $object, derives from a particular class is if (blessed($object) && $object->isa('Parent::Package')).

When I was creating the SimpleGraph.pl macro, I almost made that package derive from the Plots::Plot package, and then wanted to make this code that way, but ran into the issue with the lack of the blessed method availability. I ended up going a different direction with the SimpleGraph.pl macro though.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, line 2946 below needs to check the ref also.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DO NOT add this ref check to either macros/core/VectorField2D.pl or macros/graph/unionImage.pl. There are checks for the Plots::Plot object in those macros.

The VectorField2D.pl macro usage doesn't make sense for this statistical graph macro.

As to the unionImage.pl one, I told @somiaj not to add that there. It should be removed. No one should be using that macro anymore, and it should be moved into the deprecated folder.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wondering what to do with this. When you say that the Scalar::Util::blessed method isn't available, is this a safe issue?

Suggestions for updating this?

Comment thread lib/Plots/StatPlot.pm Outdated
Comment thread lib/Plots/StatPlot.pm Outdated
@drgrice1
Copy link
Copy Markdown
Member

OSX users need to learn to not include the __MACOSX directory in the archive files that they distribute!

Copy link
Copy Markdown
Member

@drgrice1 drgrice1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see now that this pull request doesn't even use the lib/Plots/StatPlot.pm file. So just delete it, and ignore my comments in that file.

Comment thread macros/graph/StatisticalPlots.pl Outdated
@drgrice1
Copy link
Copy Markdown
Member

Here are some issues seen with your example problems:

The histogram.pg example in your zip file is not working. It gives the warning Use of uninitialized value $options{"orientation"} in string eq at line 358 of [PG]/macros/graph/StatisticalPlots.pl. and the resulting graph looks quite bad.

The boxplot_vertical.pl problem does not show a vertical box plot. In fact the problem is identical to the boxplot.pl file. Even adding the orientation => 'vertical' option to the add_boxplot call does not make it so.

The scatter01.pg file is the new problem template, and not a scatter plot at all.

@pstaabp
Copy link
Copy Markdown
Member Author

pstaabp commented Jan 31, 2026

About the StatPlot.pm file. I didn't mean to commit that. Sorry I notice that it made it in.

Where's the __MACOS directory? MacOS has this .DSStore file, but that's not in here either.

About scatter01.pg, I forgot to save changes. Here's an update of those problems--I just added one--with some new functionality.

stats.zip

@pstaabp
Copy link
Copy Markdown
Member Author

pstaabp commented Feb 2, 2026

Adds some other functionality to StatisticalPlots.pl

  • Ability to change the outlier marks in a boxplot
  • Adds a whisker cap option to a boxplot.
  • Adds a cap_width option for these whiskers.
  • Adds custom tick labels for the x-axis. For example, replacing the ticks 3, 6, 9, with 'Red', 'Orange', 'Blue'.

About the custom tick labels. It seems to work, but may not be the best way to do this. This only works on the x-axis, but will adapt whatever we go with to the y-axis as well. Also, I haven't made this work with the tikz output.. Will do this before this is out of draft.

Here's some updated problems.

stats.zip

@pstaabp
Copy link
Copy Markdown
Member Author

pstaabp commented Feb 6, 2026

  • Added pie charts and donut/ring charts.
  • Added aliases mark_color, stroke_color and stroke_width to the stat plot to help distinguish other colors/widths.
  • Added the beginnings of a color_palette function to return a default color palette. Note there is only one there right now, but will add more .

Here is an update of the problems I've been testing with:

stats.zip

@pstaabp
Copy link
Copy Markdown
Member Author

pstaabp commented Feb 24, 2026

Another update to include custom tick labels, some additional palettes and some documentation updates.

@pstaabp pstaabp marked this pull request as ready for review February 24, 2026 20:22
drgrice1 added a commit to drgrice1/pg that referenced this pull request Mar 25, 2026
…ots.pl` macro.

To set custom tick positions use the `tick_positions` axis option.  Set
that to a reference to an array containing the positions on the axis
that ticks are desired.  For example, `tick_positions => [ 2, 5, 9 ]`
will place ticks at positions 2, 5, and 9 on the axis.  Note that when
this option is used the `tick_delta`, `tick_scale`, and `tick_distance`
options are not used. So only the given tick positions will appear in
the graph.

To set custom tick labels use the `tick_labels` option.  Note that this
is not a new option, but now it accepts a new type of value.  Previously
this was purely boolean (0 or 1), and it only determined if tick labels
would be shown or not.  Now it can take a value that is a reference to a
hash.  The keys of the hash are tick positions, and the values are the
labels to be placed at those positons. Note that formatting of the label
must be done by the auther, and the `tick_label_format` option is
ignored for any label provided in this hash. If a major tick is not
listed in the hash, then the position will be used for the label and it
will be formatted according to the `tick_label_format` option.

This is intended to replace what is done in openwebwork#1374 and is a more flexible
approach than what is done there.  In that pull request the capability
for custom tick labels only is added, and it is extremely restrictive in
what it can do.  Only positive tick labels can be customized, and it
requires that the problem author label all major ticks (there is no
fallback and a tick is labeled "undefined" if one is missing).
Copy link
Copy Markdown
Member

@drgrice1 drgrice1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove the changes for custom labels in the plots.pl macro and associated modules from this pull request in favor of #1389. The custom labels are not actually used by anything here, so it shouldn't be a big deal to do so.

The only place you do use it is in an example problem that you posted. Please test pull request #1389. That should more than meet the needs of what you do in that problem. Furthermore, the histogram code in the StatisticalPlots.pl macro could use it to ensure that the class ends are labeled. That is what I do in my problems that directly use the plots macro to construct histograms.

Copy link
Copy Markdown
Member

@drgrice1 drgrice1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is just a review of the add_rectangle method. This completes what I have seen for the changes of the plots.pl code. The typo fixes are really the only things that should stay as they are.

I will try to look at the StatisticalPlots.pl macro deeper soon.

Comment thread lib/Plots/Plot.pm Outdated
Comment thread macros/graph/plots.pl
drgrice1 added a commit to drgrice1/pg that referenced this pull request Mar 31, 2026
…ots.pl` macro.

To set custom tick positions use the `tick_positions` axis option.  Set
that to a reference to an array containing the positions on the axis
that ticks are desired.  For example, `tick_positions => [ 2, 5, 9 ]`
will place ticks at positions 2, 5, and 9 on the axis.  Note that when
this option is used the `tick_delta`, `tick_scale`, and `tick_distance`
options are not used. So only the given tick positions will appear in
the graph.

To set custom tick labels use the `tick_labels` option.  Note that this
is not a new option, but now it accepts a new type of value.  Previously
this was purely boolean (0 or 1), and it only determined if tick labels
would be shown or not.  Now it can take a value that is a reference to a
hash.  The keys of the hash are tick positions, and the values are the
labels to be placed at those positons. Note that formatting of the label
must be done by the auther, and the `tick_label_format` option is
ignored for any label provided in this hash. If a major tick is not
listed in the hash, then the position will be used for the label and it
will be formatted according to the `tick_label_format` option.

This is intended to replace what is done in openwebwork#1374 and is a more flexible
approach than what is done there.  In that pull request the capability
for custom tick labels only is added, and it is extremely restrictive in
what it can do.  Only positive tick labels can be customized, and it
requires that the problem author label all major ticks (there is no
fallback and a tick is labeled "undefined" if one is missing).
drgrice1 added a commit to drgrice1/pg that referenced this pull request Apr 21, 2026
…ots.pl` macro.

To set custom tick positions use the `tick_positions` axis option.  Set
that to a reference to an array containing the positions on the axis
that ticks are desired.  For example, `tick_positions => [ 2, 5, 9 ]`
will place ticks at positions 2, 5, and 9 on the axis.  Note that when
this option is used the `tick_delta`, `tick_scale`, and `tick_distance`
options are not used. So only the given tick positions will appear in
the graph.

To set custom tick labels use the `tick_labels` option.  Note that this
is not a new option, but now it accepts a new type of value.  Previously
this was purely boolean (0 or 1), and it only determined if tick labels
would be shown or not.  Now it can take a value that is a reference to a
hash.  The keys of the hash are tick positions, and the values are the
labels to be placed at those positons. Note that formatting of the label
must be done by the auther, and the `tick_label_format` option is
ignored for any label provided in this hash. If a major tick is not
listed in the hash, then the position will be used for the label and it
will be formatted according to the `tick_label_format` option.

This is intended to replace what is done in openwebwork#1374 and is a more flexible
approach than what is done there.  In that pull request the capability
for custom tick labels only is added, and it is extremely restrictive in
what it can do.  Only positive tick labels can be customized, and it
requires that the problem author label all major ticks (there is no
fallback and a tick is labeled "undefined" if one is missing).
drgrice1 added a commit to drgrice1/pg that referenced this pull request Apr 28, 2026
…ots.pl` macro.

To set custom tick positions use the `tick_positions` axis option.  Set
that to a reference to an array containing the positions on the axis
that ticks are desired.  For example, `tick_positions => [ 2, 5, 9 ]`
will place ticks at positions 2, 5, and 9 on the axis.  Note that when
this option is used the `tick_delta`, `tick_scale`, and `tick_distance`
options are not used. So only the given tick positions will appear in
the graph.

To set custom tick labels use the `tick_labels` option.  Note that this
is not a new option, but now it accepts a new type of value.  Previously
this was purely boolean (0 or 1), and it only determined if tick labels
would be shown or not.  Now it can take a value that is a reference to a
hash.  The keys of the hash are tick positions, and the values are the
labels to be placed at those positons. Note that formatting of the label
must be done by the auther, and the `tick_label_format` option is
ignored for any label provided in this hash. If a major tick is not
listed in the hash, then the position will be used for the label and it
will be formatted according to the `tick_label_format` option.

This is intended to replace what is done in openwebwork#1374 and is a more flexible
approach than what is done there.  In that pull request the capability
for custom tick labels only is added, and it is extremely restrictive in
what it can do.  Only positive tick labels can be customized, and it
requires that the problem author label all major ticks (there is no
fallback and a tick is labeled "undefined" if one is missing).
drgrice1 added a commit to drgrice1/pg that referenced this pull request Apr 28, 2026
…ots.pl` macro.

To set custom tick positions use the `tick_positions` axis option.  Set
that to a reference to an array containing the positions on the axis
that ticks are desired.  For example, `tick_positions => [ 2, 5, 9 ]`
will place ticks at positions 2, 5, and 9 on the axis.  Note that when
this option is used the `tick_delta`, `tick_scale`, and `tick_distance`
options are not used. So only the given tick positions will appear in
the graph.

To set custom tick labels use the `tick_labels` option.  Note that this
is not a new option, but now it accepts a new type of value.  Previously
this was purely boolean (0 or 1), and it only determined if tick labels
would be shown or not.  Now it can take a value that is a reference to a
hash.  The keys of the hash are tick positions, and the values are the
labels to be placed at those positons. Note that formatting of the label
must be done by the auther, and the `tick_label_format` option is
ignored for any label provided in this hash. If a major tick is not
listed in the hash, then the position will be used for the label and it
will be formatted according to the `tick_label_format` option.

This is intended to replace what is done in openwebwork#1374 and is a more flexible
approach than what is done there.  In that pull request the capability
for custom tick labels only is added, and it is extremely restrictive in
what it can do.  Only positive tick labels can be customized, and it
requires that the problem author label all major ticks (there is no
fallback and a tick is labeled "undefined" if one is missing).
drgrice1 added a commit to drgrice1/pg that referenced this pull request Apr 28, 2026
…ots.pl` macro.

To set custom tick positions use the `tick_positions` axis option.  Set
that to a reference to an array containing the positions on the axis
that ticks are desired.  For example, `tick_positions => [ 2, 5, 9 ]`
will place ticks at positions 2, 5, and 9 on the axis.  Note that when
this option is used the `tick_delta`, `tick_scale`, and `tick_distance`
options are not used. So only the given tick positions will appear in
the graph.

To set custom tick labels use the `tick_labels` option.  Note that this
is not a new option, but now it accepts a new type of value.  Previously
this was purely boolean (0 or 1), and it only determined if tick labels
would be shown or not.  Now it can take a value that is a reference to a
hash.  The keys of the hash are tick positions, and the values are the
labels to be placed at those positons. Note that formatting of the label
must be done by the auther, and the `tick_label_format` option is
ignored for any label provided in this hash. If a major tick is not
listed in the hash, then the position will be used for the label and it
will be formatted according to the `tick_label_format` option.

This is intended to replace what is done in openwebwork#1374 and is a more flexible
approach than what is done there.  In that pull request the capability
for custom tick labels only is added, and it is extremely restrictive in
what it can do.  Only positive tick labels can be customized, and it
requires that the problem author label all major ticks (there is no
fallback and a tick is labeled "undefined" if one is missing).
drgrice1 added a commit to drgrice1/pg that referenced this pull request May 18, 2026
…ots.pl` macro.

To set custom tick positions use the `tick_positions` axis option.  Set
that to a reference to an array containing the positions on the axis
that ticks are desired.  For example, `tick_positions => [ 2, 5, 9 ]`
will place ticks at positions 2, 5, and 9 on the axis.  Note that when
this option is used the `tick_delta`, `tick_scale`, and `tick_distance`
options are not used. So only the given tick positions will appear in
the graph.

To set custom tick labels use the `tick_labels` option.  Note that this
is not a new option, but now it accepts a new type of value.  Previously
this was purely boolean (0 or 1), and it only determined if tick labels
would be shown or not.  Now it can take a value that is a reference to a
hash.  The keys of the hash are tick positions, and the values are the
labels to be placed at those positons. Note that formatting of the label
must be done by the auther, and the `tick_label_format` option is
ignored for any label provided in this hash. If a major tick is not
listed in the hash, then the position will be used for the label and it
will be formatted according to the `tick_label_format` option.

This is intended to replace what is done in openwebwork#1374 and is a more flexible
approach than what is done there.  In that pull request the capability
for custom tick labels only is added, and it is extremely restrictive in
what it can do.  Only positive tick labels can be customized, and it
requires that the problem author label all major ticks (there is no
fallback and a tick is labeled "undefined" if one is missing).
drgrice1 added 2 commits May 19, 2026 09:40
…ots.pl` macro.

To set custom tick positions use the `tick_positions` axis option.  Set
that to a reference to an array containing the positions on the axis
that ticks are desired.  For example, `tick_positions => [ 2, 5, 9 ]`
will place ticks at positions 2, 5, and 9 on the axis.  Note that when
this option is used the `tick_delta`, `tick_scale`, and `tick_distance`
options are not used. So only the given tick positions will appear in
the graph.

To set custom tick labels use the `tick_labels` option.  Note that this
is not a new option, but now it accepts a new type of value.  Previously
this was purely boolean (0 or 1), and it only determined if tick labels
would be shown or not.  Now it can take a value that is a reference to a
hash.  The keys of the hash are tick positions, and the values are the
labels to be placed at those positons. Note that formatting of the label
must be done by the auther, and the `tick_label_format` option is
ignored for any label provided in this hash. If a major tick is not
listed in the hash, then the position will be used for the label and it
will be formatted according to the `tick_label_format` option.

This is intended to replace what is done in openwebwork#1374 and is a more flexible
approach than what is done there.  In that pull request the capability
for custom tick labels only is added, and it is extremely restrictive in
what it can do.  Only positive tick labels can be customized, and it
requires that the problem author label all major ticks (there is no
fallback and a tick is labeled "undefined" if one is missing).
…the y-axis.

The coordinate for the y-axis is different than for the x-axis.
@pstaabp pstaabp force-pushed the statistical-plots branch from e3a3722 to e338361 Compare May 19, 2026 17:08
pstaabp pushed a commit to pstaabp/pg that referenced this pull request May 19, 2026
…ots.pl` macro.

To set custom tick positions use the `tick_positions` axis option.  Set
that to a reference to an array containing the positions on the axis
that ticks are desired.  For example, `tick_positions => [ 2, 5, 9 ]`
will place ticks at positions 2, 5, and 9 on the axis.  Note that when
this option is used the `tick_delta`, `tick_scale`, and `tick_distance`
options are not used. So only the given tick positions will appear in
the graph.

To set custom tick labels use the `tick_labels` option.  Note that this
is not a new option, but now it accepts a new type of value.  Previously
this was purely boolean (0 or 1), and it only determined if tick labels
would be shown or not.  Now it can take a value that is a reference to a
hash.  The keys of the hash are tick positions, and the values are the
labels to be placed at those positons. Note that formatting of the label
must be done by the auther, and the `tick_label_format` option is
ignored for any label provided in this hash. If a major tick is not
listed in the hash, then the position will be used for the label and it
will be formatted according to the `tick_label_format` option.

This is intended to replace what is done in openwebwork#1374 and is a more flexible
approach than what is done there.  In that pull request the capability
for custom tick labels only is added, and it is extremely restrictive in
what it can do.  Only positive tick labels can be customized, and it
requires that the problem author label all major ticks (there is no
fallback and a tick is labeled "undefined" if one is missing).
@pstaabp pstaabp force-pushed the statistical-plots branch from c9d73ad to 6132ad9 Compare May 19, 2026 17:26
pstaabp added 6 commits May 19, 2026 13:28
This contains the methods add_barplot, add_histogram, add_boxplot and
add_scatterplot.

There are many options for each and there is documentation as well.

This also includes the add_rectangle method to the plot.pl macro
which is a wrapper for the add_dataset for creating rectangles.
Cleanup of the POD.
Removal of Plots::StatsPlot->new function.  It wasn't needed.
Make sure Plots::StatsPlot objects are rendered in PGbasicmacros.pl.
- Ability to change the outlier marks in a boxplot
- Adds a whisker cap option to a boxplot.
- Adds a cap_width option for these whiskers.
- Adds custom tick labels for the x-axis.
Add beginnings of some color palettes.
Fix a typo in Data.pm
@pstaabp pstaabp force-pushed the statistical-plots branch from 6132ad9 to 9575e2f Compare May 19, 2026 17:31
@pstaabp pstaabp changed the base branch from develop to PG-2.21 May 19, 2026 17:43
@pstaabp
Copy link
Copy Markdown
Member Author

pstaabp commented May 19, 2026

I have updated this PR to

  1. get rid of the custom tick code in favor of Make it possible to set custom tick positions and labels with the plots.pl macro. #1389
  2. Other comments above.
  3. switch to the PG2.21 branch.

drgrice1 added a commit to drgrice1/pg that referenced this pull request May 19, 2026
…ots.pl` macro.

To set custom tick positions use the `tick_positions` axis option.  Set
that to a reference to an array containing the positions on the axis
that ticks are desired.  For example, `tick_positions => [ 2, 5, 9 ]`
will place ticks at positions 2, 5, and 9 on the axis.  Note that when
this option is used the `tick_delta`, `tick_scale`, and `tick_distance`
options are not used. So only the given tick positions will appear in
the graph.

To set custom tick labels use the `tick_labels` option.  Note that this
is not a new option, but now it accepts a new type of value.  Previously
this was purely boolean (0 or 1), and it only determined if tick labels
would be shown or not.  Now it can take a value that is a reference to a
hash.  The keys of the hash are tick positions, and the values are the
labels to be placed at those positons. Note that formatting of the label
must be done by the auther, and the `tick_label_format` option is
ignored for any label provided in this hash. If a major tick is not
listed in the hash, then the position will be used for the label and it
will be formatted according to the `tick_label_format` option.

This is intended to replace what is done in openwebwork#1374 and is a more flexible
approach than what is done there.  In that pull request the capability
for custom tick labels only is added, and it is extremely restrictive in
what it can do.  Only positive tick labels can be customized, and it
requires that the problem author label all major ticks (there is no
fallback and a tick is labeled "undefined" if one is missing).
drgrice1 added a commit that referenced this pull request May 19, 2026
…ots.pl` macro.

To set custom tick positions use the `tick_positions` axis option.  Set
that to a reference to an array containing the positions on the axis
that ticks are desired.  For example, `tick_positions => [ 2, 5, 9 ]`
will place ticks at positions 2, 5, and 9 on the axis.  Note that when
this option is used the `tick_delta`, `tick_scale`, and `tick_distance`
options are not used. So only the given tick positions will appear in
the graph.

To set custom tick labels use the `tick_labels` option.  Note that this
is not a new option, but now it accepts a new type of value.  Previously
this was purely boolean (0 or 1), and it only determined if tick labels
would be shown or not.  Now it can take a value that is a reference to a
hash.  The keys of the hash are tick positions, and the values are the
labels to be placed at those positons. Note that formatting of the label
must be done by the auther, and the `tick_label_format` option is
ignored for any label provided in this hash. If a major tick is not
listed in the hash, then the position will be used for the label and it
will be formatted according to the `tick_label_format` option.

This is intended to replace what is done in #1374 and is a more flexible
approach than what is done there.  In that pull request the capability
for custom tick labels only is added, and it is extremely restrictive in
what it can do.  Only positive tick labels can be customized, and it
requires that the problem author label all major ticks (there is no
fallback and a tick is labeled "undefined" if one is missing).
Copy link
Copy Markdown
Member

@drgrice1 drgrice1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You either need to rebase this pull request on to the PG-2.21 release candidate branch, or merge that branch into this one. This is showing things that aren't right.

Revert all changes to the htdocs/js/Plots/plots.js, lib/Plots/Axes.pm, lib/Plots/JSXGraph.pm files in this pull request. Those files should not be modified or be listed as changed at all by this pull request. The changes shown now are incorrect.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants