You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[ENH]: Cairo backends do not fully support HiDPI #21024
When running examples/misc/pythonic_matplotlib.py on a display set to 150% scaling, QtAgg looks like this:
But when running QtCairo, it looks like this:
The same thing occurs with the GTK*Cairo renderers in #20988.
Layout is done outside the renderer, so everything is in the right place. However, Cairo only knows about the physical DPI, and renders text and lines with it. Thus they are all the correct size at 200 DPI, but since that is scaled in half to 100 DPI, they all appear smaller than they should be.
Proposed solution
Somehow Agg backends handle this correctly, so we should copy whatever we do there to the Cairo backends.
Thus they are all the correct size at 200 DPI, but since that is scaled in half to 100 DPI, they all appear smaller than they should be.
Ah, I actually have this backwards. They are rendered at 100 DPI on a canvas that is actually 200 DPI. This is because Cairo renderers are created with the canvas and stay around for all time with the initial DPI, whereas the Agg renderers are created on draw (modulo some caching) and thus always have the correct DPI.
Activity
QuLogic commentedon Sep 9, 2021
Ah, I actually have this backwards. They are rendered at 100 DPI on a canvas that is actually 200 DPI. This is because Cairo renderers are created with the canvas and stay around for all time with the initial DPI, whereas the Agg renderers are created on draw (modulo some caching) and thus always have the correct DPI.
QuLogic commentedon Sep 9, 2021
Additionally, if you save the figure from the GUI, it outputs something that's about half the width and half the height that it should be.