“Colorbar” objects for the bivariate and multivariate case<\/li>\n<\/ol>\n\n\n\nOf these, step 1 has been approved, and step 2 is (hopefully) near the end of code review. Step 3 waits for step 1 and 2 to be merged, but the PR will be made soon. Step 4 is similarly ready, but the PR should be made after the code review of step 3 has started. The PR for step 5 will similarly follow once step 4 is merged.<\/p>\n\n\n\n
In other words, there is still some work to be done, but as there exists drafts for all the remaining functionality the remaining workloads are less code-intensive, and instead lean towards the collaborative aspects of open source. This project involves re-organizing the data\u2192color<\/code> pipeline for all relevant plotting methods, and it is therefore important that all the Matplotlib maintainers get to chime in at every step of the way. This process takes time, but ensures a better outcome. <\/p>\n\n\n\nThank you to Hannah and Kyle for guiding me through GSOC, and to Elliot, Tom, Tim and Jody for feedback on the PRs.<\/p>\n\n\n\n
\n\n\n\n\u00b9 The distinction between the Colorizer<\/code> and ColorizingArtist<\/code> objects are as follows:<\/p>\n\n\n\n\nColorizingArtist<\/code> subclasses Artist<\/code>, i.e. it refers to a specific graphical element in a plot. It has the following atributes:\n\n- data<\/li>\n\n\n\n
- alpha (opacity)<\/li>\n\n\n\n
colorizer<\/code><\/li>\n\n\n\n- A
.draw(renderer)<\/code> method to render (display) the graphical elements. <\/li>\n\n\n\n- …\u00b2<\/li>\n\n\n\n
- …\u00b3<\/li>\n<\/ul>\n<\/li>\n\n\n\n
Colorizer<\/code> holds the data\u2192color<\/code> pipeline. It consists of:\n\nnorm<\/code><\/li>\n\n\n\ncmap<\/code><\/li>\n\n\n\n- A
.to_rgba(data, alpha)<\/code> method that assignes color (red, green, blue, alpha) to data using the norm<\/code> and cmap<\/code>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\nWhen rendering a ColorizingArtist<\/code>, it will invoke self.colorizer.to_rgba(data, alpha)<\/code> to determine what colors to render.<\/p>\n\n\n\n\u00b2 ColorizingArtist<\/code> also has attributes required of an Artist<\/code>, such as position, size, etc. relating to rendering of the artist in an Axes<\/code>. <\/p>\n\n\n\n\u00b3 The norm<\/code> and cmap<\/code> are accessible as attributes on a ColorizingArtist<\/code> through the use of @property<\/code>. For many users, the distinction between the ColorizingArtist<\/code> and Colorizer<\/code> will therefore not be felt. <\/p>\n\n\n\n<\/p>\n","protected":false},"excerpt":{"rendered":"
Color mapping with multiple channels has long been a requested feature in Matplotlib, one this Google Summer of Code project (GSOC) has attempted to address, the figures below shows the desired functionality:<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-246","post","type-post","status-publish","format-standard","hentry","category-uncategorized","clear"],"_links":{"self":[{"href":"http:\/\/bentus\/wp-json\/wp\/v2\/posts\/246"}],"collection":[{"href":"http:\/\/bentus\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/bentus\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/bentus\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/bentus\/wp-json\/wp\/v2\/comments?post=246"}],"version-history":[{"count":15,"href":"http:\/\/bentus\/wp-json\/wp\/v2\/posts\/246\/revisions"}],"predecessor-version":[{"id":275,"href":"http:\/\/bentus\/wp-json\/wp\/v2\/posts\/246\/revisions\/275"}],"wp:attachment":[{"href":"http:\/\/bentus\/wp-json\/wp\/v2\/media?parent=246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bentus\/wp-json\/wp\/v2\/categories?post=246"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bentus\/wp-json\/wp\/v2\/tags?post=246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}