vega / vega-lite

A concise grammar of interactive graphics, built on Vega.
https://vega.github.io/vega-lite/
BSD 3-Clause "New" or "Revised" License
4.64k stars 604 forks source link

Proposal: remove view stroke by default in some cases #6093

Open domoritz opened 4 years ago

domoritz commented 4 years ago

I think that the stroke around a view adds visual clutter to single view visualizations with categorical data on some axis. I think we could remove the outline to declutter charts. The outline helps with framing a visualization but most of the time the grid already provides this functionality.

Here are some charts without the outline.

image

image

image

image

image

image

image

kanitw commented 4 years ago

Why stroke lines rather than the domain lines?

domoritz commented 4 years ago

Why stroke lines rather than the domain lines?

The domain lines are often where 0 is and that can be useful for orientation. But yes, we could get rid of domain lines as well.

image

image

image

image

And maybe ticks where we already have gridlines.

image

image

image

kanitw commented 4 years ago

Also, I'm not convinced that the examples you should above looks clearly better without stroke. There are also cases where having stroke still looks better, like this one, which has grid line at the top of y-axis, but not right of x-axis, making it look weird:

image

Given that VL has used this style for a long time, I'd prefer not to introduce a massive style change unless there is clearly a significant gain from doing so.

domoritz commented 4 years ago

I'm not so much talking about looking better but being clearer. In the example you give, the frame around the chart looks like ~250 Horsepower, when it is not.

kanitw commented 4 years ago

I'm not so much talking about looking better but being clearer. In the example you give, the frame around the chart looks like ~250 Horsepower, when it is not.

How? the frame is clearly having different width.

domoritz commented 4 years ago

It doesn't look clear to me in the current default

image

domoritz commented 4 years ago

Btw, I think for multiview charts, the frame helps a bit. I could probably get used to not having it, though.

image

image

image

kanitw commented 4 years ago

The multi-view plots are significantly better with the frame.

Without the frame, it's hard to perceive the separation between subplots, like this one below is pretty bad:

image

kanitw commented 4 years ago

It doesn't look clear to me in the current default

image

I don't think hiding the frame is really helping here.

firasm commented 4 years ago

Interesting debate - thought I'd quickly interject: in general I agree that having a frame around the plot introduces visual clutter ; however I don't think using the grid-lines is an easy replacement.

In the example below, I would even go so far as to say that the last vertical grid line is "wrong" as it implies the edge of the plot is at 250 (though on closer look, you can see that it's not because that tick isn't labeled as 250).

76694992-c48c0800-6636-11ea-86f9-8e4b08f53e7e

kanitw commented 4 years ago

In the example below, I would even go so far as to say that the last vertical grid line is "wrong" as it implies the edge of the plot is at 250 (though on closer look, you can see that it's not because that tick isn't labeled as 250).

I guess the problem is that the view stroke has the same color as the grid.
(If it's not the same color, there is no reason to make such implication.)

kanitw commented 4 years ago

I guess the only reasonable to remove stroke by default is to think of the stroke as a property of multi-view's frame with shared axis.

davidanthoff commented 4 years ago

I always thought that the seaborn figures look fantastic by default, for example this, this or this.

I think the key there is that they don't have a grid by default, I think that is the main that that makes those figures less busy than the vega-lite defaults.