How to improve Plots.jl's look

I used Plots for some time, and am quiet unsatisfied with the figure quality. The tutorial gives us some example, which shows its simplicity. However, none of those figures are publication-quality. I reproduced these plots using PyPlot.jl and GR.jl, they look much better. Therefore, the poor quality of figure made by Plots is not caused by the backend. What makes Plot.jl so ugly? I know some recipes are allowed in Plots.jl, which might make the figure more beautiful. I tested some of these recipes, and was still unsatisfied. Could the developer offer a gallery of beautiful figures produced by Plots.jl (maybe in some notebooks)? It is very inspiring to see beautiful figures, especially for those who don’t know what plotting package to use.

2 posts were split to a new topic: How to improve Plots.jl default appearance

It’s also possible that examples used in the documentation have been reduced in size/quality for practical reasons.

I fully agree with @Tamas_Papp: if you want to help, the best way is to be very specific about what could be improved so that the Plots developers can see whether some attributes could have a better default (I guess that’s what this is about, as you can most likely get to a “publication quality” figure by tweaking attributes). Even if those new attributes values do not get chosen as default, you can change your own defaults in the .juliarc.jl file I believe.

On a related note, it’d be nice to have a series of beautified plots from Plots.jl on the Julia homepage: now there only are Gadfly plots (which look very pretty, it’ll be a challenge to get a similar level of beautification).

2 Likes

I don’t think plots should be on the homepage for the Julia programming language. It makes more sense to me to have that in the packages that provide the plotting functionality.

I do not like the title, and I think for now there are at least 2 or more feasible options for data visualization in Julia. For example, I use the PlotlyJS package pretty often, and it works all well.

1 Like

Could you somehow qualify what ‘publication quality’ means for you. In some previous discussions:

  • tiff format and hight dpi
  • font selection and quality
  • size, geometry and placement of legends/title/additional text

?

Some of the bad things are:

  1. the default line color, the ticks width, tick length, the fonts
  2. for some backends, GR for example, the savefig(“test.eps”) produce ugly (wrong orientation) labels, especially when they contains LaTeXstrings.
  3. size, geometry and placement of legends/title/additional text
  4. sometimes the ticklabels are cut off.

I know the Plots.jl package is under development, and many of the issues are to be solved soon. I also know I can manage to make better figures within Plots.jl by adding some attributes. I am sure of the better future of Plots.jl. My suggestion is that the developers could offer more beautiful figures somewhere.

The Plots.jl package is not under heavy development anymore, what is happening now is mostly small fixes and code contributions from a few maintainers and users. The main creator of the package, Tom Breloff, is not touching the code anymore at the frequency he used to. @tbreloff can you elaborate on your plans for the project, specially given the recent announcement of promising alternatives like Makie.jl?

I think it is rude to ping the developers when the OP is unwilling even to make the effort of providing an MWE. I still have no idea why and what precisely @111 considers “ugly”; chasing this without his cooperation is a potential timesink with little benefit.

Conversations like this disincentivize developing important packages like Plots.jl.

6 Likes

I am not pinging him to discuss about this thread, I am pinging him to know what is the future of Plots.jl in his view and current plans.

I think you are attributing me intentions which I do not have.

The question you asked (Makie vs Plots.jl, and the future of the latter) was addressed by developers in this topic in detail.

Isn’t the point of Plots.jl is that you can choose whichever backend you want, including PyPlot? Then it makes no sense to say that “PyPlot looks better than Plots”. (Possibly you could say that PyPlots looks better than the default setting of Plots, but this is a matter of taste, and switching backend is literally one line of code.)

Pinging someone who hasn’t developed Julia, nor interacted with the Julia community for more than a year, for plans to a package which ownership has been transferred away seems quite unproductive. Development of Plots.jl has moved on to new contributors and who the original creator was, does not matter much.

4 Likes

I have hard time following these negative comments against Plots.jl. Plots.jl is a frontend, and your results will look as good as whatever backend you choose to plot the results. Plus, the RecipesBase.jl in the same unifying framework is very helpful, too.

For me, the “beauty” is the convenience when you start to plot things. Personally, I do not like checking documentation for different plotting commands and supported attributes if my concern is to plot something. Every backend, generally, is allowed to have different notations, call syntaxes, attributes, data types. I want to write a single command, or recipe, and I want it to work no matter what the backend is. In this sense, Lorenz Attracter or any other example under the homepage is beautiful enough.

We can argue the speed or some other design decision, but IMO Plots.jl is simply a great package which does what it promises in a clean way. Sure enough, “Beauty is in the eye of the beholder,” and I cannot say anything about such statements, in the end. I simply cannot understand :slight_smile:

Like many topics lately, this one cannot continue meaningfully until OP addresses Tamas Papp’s points.

Most of plots can be tweaked (see https://github.com/JuliaPlots/PlotThemes.jl for simple examples of how to “theme” your Plots plots), so it shouldn’t be too hard for OP to simply create an “OPtheme” for Plots, and just set that theme. Heck, if OP promises they can actually provide beautiful defaults, I’ll include them in PlotThemes.jl under the name :beautiful.

4 Likes

Then someone should take the time and change the first line of the README.md which states:

Author: Thomas Breloff ( at tbreloff)

1 Like

In light of recent discussions similar to this one, I just wrote a blog post about my plotting workflow for publication-quality plots and related issues.

11 Likes

Why? Tom wrote and thought out much of what we know as Plots, but currently a group of people (excluding Tom) are maintaining it. I don’t think it’s for you to decide who is credited as the main author. If you want to know who did something and what, you can visit the “contributors” page on any Github project.

2 Likes