syntagmatic / parallel-coordinates

A d3-based parallel coordinates plot in canvas. This library is no longer actively developed.
http://syntagmatic.github.com/parallel-coordinates/
Other
511 stars 211 forks source link

Hide Axis values #267

Closed rcfontana closed 8 years ago

rcfontana commented 8 years ago

Hi, I'm using the parallel coordinates + grid view (pretty much the same from http://syntagmatic.github.io/parallel-coordinates/examples/upload.html). But my data has values that uses to much space on the parallel coordinates itself. Therefore, I can only plot like 100-150 lines before it breaks. I wonder if I can hide the values shown in the parallel coordinates view, because I'm mainly interested in the visual representation (insights) of the data. The details can be on-demand in the grid below after I select (brush) over a specific section. Maybe that would enable me to have more lines in my visualization.

syntagmatic commented 8 years ago

Can you post the dataset you're trying to use?

rcfontana commented 8 years ago

Nop :( But I can explain it further with an example. My csv is like: SrcAddr,Sport,DstAddr,Dport,Proto 192.168.0.0,54587,192.168.0.0,3163,tcp 192.168.0.0,54422,192.168.0.12,138,tcp ... ... So If I add 200+ entries the parallel coordinates starts melting and dies..I guess because it doesn't scale properly with IP values.

syntagmatic commented 8 years ago

Ahh, yes. IP values aren't supported and are probably treated as categorical dimensions by the type autodetection.

Try removing the periods from IP addresses before uploading the dataset. Then they should be treated as numbers and will render more sensibly.

rcfontana commented 8 years ago

Removing "." works. But it gives mind pain when reading the IP in the grid :/ I was imagining one "parcoords.hiddeValues[(SrcAddr,DstAddr)]" that could be added to the function.

syntagmatic commented 8 years ago

Try using parcoords.hideAxis(["SrcAddr","DstAddr"])

rcfontana commented 8 years ago

.hideAxis eliminates the entire Axis. What I'm looking for is hiding the values being displayed in the parallel coordinates graph. I'm only interested is seeing the values in the grid.

syntagmatic commented 8 years ago

By "values" do you mean the tick text on the axis?

One way to remove tick text would be, after the axis has been rendered:

d3.selectAll(".dimension")
  .filter(function(d) { return d == "SrcAddr" || d == "DstAddr"; })
  .selectAll(".tick text")
  .remove();

It may be possible to configure the axes to label only certain values ahead of time with https://github.com/syntagmatic/parallel-coordinates/pull/265

rcfontana commented 8 years ago

Ahh, that helps! Thx. For a better network visualization using parallel coordinates I suggest using netaddr for the numerical representation of IP addresses. https://pythonhosted.org/netaddr/tutorial_01.html

syntagmatic commented 8 years ago

Here's an example of an IPv4 address axis (from scratch, not with d3.parcoords.js): http://bl.ocks.org/syntagmatic/1ced118a51b49dadd4ea

rcfontana commented 8 years ago

Nice! Thx for posting that.