-
Notifications
You must be signed in to change notification settings - Fork 208
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
plotHeatmap strange scale tick on profiles #616
Comments
Can you make an example matrix available? I'd like to track the cause of this down. |
Here is an example matrix: This one produces a subtle a subtle mismatch in the tick position with default y-scale: If I ask for a different y-scale the mismatch is more striking. Also I don't know if it's related but plotHeatmap is not obedient for yMax as I ask for 50 and it uses 60. |
Thanks, I'll have a look at both issues. |
As best as I can tell this is a weird matplotlib bug. I get the same problem with the tick marks not lining up, which seems to happen when we override the default ticks that matplotlib produces. On the plus side, this seems to be just the ticks not lining up, the actual data is in the correct place. I don't have the issue where setting |
I was hoping like you until today: If that could help I am using deepTools in its own conda environment: I fixed the pysam version according to this issue:
|
Can you post or send me the matrix for that last one? It looks like it'll be more useful in debugging this. Thanks for posting the conda env, I might use that for testing. |
Sure. It is too big for github (33MB) so it is available here for 3 weeks: |
Are you specifying anything other than |
Yes the first row of profiles is made with the command below, the other two rows use the same command but with --yMin and --yMax. I extracted the profiles to Inkscape to produce the previous png, hence no use of --legendLocation to avoid the flooding legend.
|
@fidelram: The cause of this issue is here. I presume this is a hold-over from allowing different per-plot ylims(). When ticks are modified on one plot they can increase its limits. These altered limits aren't then propagated to the other plots. The simplest solution would be to not decrease the number of ticks. Alternatively, we can store and then reapply the limits on each subgraph. This, however will result in the top tick getting removed sometimes. Personally, I prefer just leaving the ticks where they are by default. |
@dpryan79 The default behavior of matplotlib some years ago was to put a lot of ticks and thus I tried to reduce them. However, I think that matplotlib is doing now a better job so I agree that the best is to remove this code and let the rendering take care of the ticks. If in the future we want to decrease the number of ticks we should use this https://matplotlib.org/api/ticker_api.html |
I still need to actually test it, but I've just put the suggested fix in the branch for version 2.5.4. |
Version 2.5.4 is coming out now. |
On some profiles produced by plotHeatmap I have noticed that additional samples do not get the same scale ticks as the first one. I am worried that the y-scale is not the same on each sample.
The text was updated successfully, but these errors were encountered: