Title: Images shifted relative to other plot feature in vector graphic output formats · Issue #1085 · matplotlib/matplotlib · GitHub
Open Graph Title: Images shifted relative to other plot feature in vector graphic output formats · Issue #1085 · matplotlib/matplotlib
X Title: Images shifted relative to other plot feature in vector graphic output formats · Issue #1085 · matplotlib/matplotlib
Description: When writing out plots in vector graphics formats, the image data can be shifted relative to the axes window. Here is a list of things I've noticed about the problem: When data is shifted outside the axes window, it is clipped. Sometimes...
Open Graph Description: When writing out plots in vector graphics formats, the image data can be shifted relative to the axes window. Here is a list of things I've noticed about the problem: When data is shifted outside t...
X Description: When writing out plots in vector graphics formats, the image data can be shifted relative to the axes window. Here is a list of things I've noticed about the problem: When data is shifted outsi...
Opengraph URL: https://github.com/matplotlib/matplotlib/issues/1085
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Images shifted relative to other plot feature in vector graphic output formats","articleBody":"When writing out plots in vector graphics formats, the image data can be shifted relative to the axes window.\n\nHere is a list of things I've noticed about the problem:\n- When data is shifted outside the axes window, it is clipped. Sometimes the data will be shifted entirely outside the axes window and the plot will appear blank.\n- I've observed the problem in ps/eps/pdf/svg output files.\n- The interpolation method used seems to have an effect on the shifted result.\n- All of the image data is contained within the output file and can be retrieved using a program like inkscape (although some digging is required)\n- The shift seems to be different in different viewers. For example, pdf output looks okay in Okular but not in xpdf.\n\nThere have been a couple of emails about this on the users mailing list. Benjamin Root verified the problem. Eric Firing suggested that it might be a truncation error bug and suggested the following:\n\n\u003e I thought it might come from the use of str() instead of repr() when\n\u003e generating the concat matrix in the ps backend, but that's not it. I'm\n\u003e suspecting it may be inherent in the ps language, when one uses a matrix\n\u003e to make an enormous translation in one direction, and then uses\n\u003e translate to sling everything back in the other direction. Either that,\n\u003e or some sort of \"snapping\" is going on.\n\n--Chad\n\nHere are some scripts that can be used to reproduce the problem:\n\n``` python\nimport matplotlib.pyplot as plt\nfrom matplotlib.colors import LogNorm\n\nimgData = [[1.0/(x) + 1.0/(y) for x in range(1,100)] for y in range(1,100)]\n\ntMin=734717.945208\ntMax=734717.946366\n\n# Case 0: Works\nCase0={\"id\":0,\n \"interp\":None,\n \"extents\":(tMin,tMax,1,100)}\n\n# Case 1: Works\nCase1={\"id\":1,\n \"interp\":\"none\",\n \"extents\":(1,100,1,100)}\n\n# Case 2: Doesn't work\nCase2={\"id\":2,\n \"interp\":\"none\",\n \"extents\":(tMin,tMax,1,100)}\n\nfor Case in (Case2, Case1, Case0):\n plt.figure(Case[\"id\"])\n axImg=plt.subplot(111)\n axImg.imshow(imgData,\n norm=LogNorm(),\n interpolation=Case[\"interp\"],\n extent=Case[\"extents\"])\n axImg.set_aspect('auto')\n\n for filetype in [\"png\", \"eps\", \"pdf\", \"svg\"]:\n plt.savefig(\"imageshift-Case{0}.{1}\".format(Case[\"id\"], filetype))\n```\n\n``` python\n# modified by Eric Firing\nimport matplotlib.pyplot as plt\nfrom matplotlib.colors import LogNorm\n\nimgData = [[1.0/x + 1.0/y for x in range(1,10)] for y in range(1,10)]\n\ntMin = 1000000066 # Shifted by half\ntMin = 100000066 # Blank!\ntMin = 10000066 # OK\ntMax = tMin+10\n\n# The following combination is also shifted by half\ntMin = 10000066.1 # adding the 0.1 doesn't make a difference\ntMax = tMin+1\n\nprint tMin, tMax\n\naxImg=plt.subplot(111)\naxImg.imshow(imgData, norm=LogNorm(), extent=(tMin,tMax,1,10),\n interpolation='none', origin=\"upper\")\naxImg.set_aspect('auto')\n\nplt.savefig(\"imageshift.png\")\nplt.savefig(\"imageshift.eps\")\nplt.savefig(\"imageshift.pdf\")\n```\n","author":{"url":"https://github.com/technobauble","@type":"Person","name":"technobauble"},"datePublished":"2012-08-14T14:29:41.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":9},"url":"https://github.com/1085/matplotlib/issues/1085"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:a816098d-31c2-6942-a933-2bd33aaa768f |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | B85C:20FEA0:10266EE:16105E1:6A52284C |
| html-safe-nonce | 78c29a7540262e196d822a644bcae064fc137f1191a466314b01de1a1c8b9c65 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCODVDOjIwRkVBMDoxMDI2NkVFOjE2MTA1RTE6NkE1MjI4NEMiLCJ2aXNpdG9yX2lkIjoiMjEwMjcwNDU2NTU2ODgwOTAzNiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 39d396a4f6f3fa37294a0c8686deb12987f6b2de3e68370d27b5e87b3e4a8c24 |
| hovercard-subject-tag | issue:6217431 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/matplotlib/matplotlib/1085/issue_layout |
| twitter:image | https://opengraph.githubassets.com/ce30d108d1c01c988840e3e3755fddfbadacd066e9b6c3a3381464d403067f4b/matplotlib/matplotlib/issues/1085 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/ce30d108d1c01c988840e3e3755fddfbadacd066e9b6c3a3381464d403067f4b/matplotlib/matplotlib/issues/1085 |
| og:image:alt | When writing out plots in vector graphics formats, the image data can be shifted relative to the axes window. Here is a list of things I've noticed about the problem: When data is shifted outside t... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | technobauble |
| hostname | github.com |
| expected-hostname | github.com |
| None | b9a586c06a05a7a86fc7e3f4dbd03e42f6869085879aa184aa6369456dbd50fb |
| turbo-cache-control | no-preview |
| go-import | github.com/matplotlib/matplotlib git https://github.com/matplotlib/matplotlib.git |
| octolytics-dimension-user_id | 215947 |
| octolytics-dimension-user_login | matplotlib |
| octolytics-dimension-repository_id | 1385122 |
| octolytics-dimension-repository_nwo | matplotlib/matplotlib |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 1385122 |
| octolytics-dimension-repository_network_root_nwo | matplotlib/matplotlib |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 7aed05249554b889eb33d002851a973eebcc7e91 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width