GraphRecipes.jl icon indicating copy to clipboard operation
GraphRecipes.jl copied to clipboard

Performance Regression?

Open dgleich opened this issue 6 years ago • 1 comments

Hey all, after updating to the most recent GraphRecipes, I seem to run into issues with plotting large numbers of edges.

For instance, the following call works on [email protected] (on Julia 1.4.1, macOS, using Plots)

graphplot(rand(1:1000,25000),rand(1:1000,25000), x = randn(1000), y = randn(1000), arrow=false, markersize=0.5)

On [email protected], the following didn't terminate in a reasonable amount of time

using GraphRecipes, Plots; graphplot(rand(1:1000,25000),rand(1:1000,25000), x = randn(1000), y = randn(1000), arrow=false, nodesize=0.5, markersize=0.5)

These were with the GR backend.

Extra notes on versions.

I'm honestly not sure what version of Plots.jl I'm using for these tests. When I ran add [email protected] I saw, [91a5bcdd] ↓ Plots v1.0.12 ⇒ v0.29.9

Then when I went back to update GraphRecipes

(@v1.4) pkg> update GraphRecipes
   Updating registry at `~/.julia/registries/General`
   Updating git-repo `https://github.com/JuliaRegistries/General.git`
   Updating `~/.julia/environments/v1.4/Project.toml`
  [bd48cda9] ↑ GraphRecipes v0.4.0 ⇒ v0.5.2
   Updating `~/.julia/environments/v1.4/Manifest.toml`
  [13072b0f] + AxisAlgorithms v1.0.0
  [3da002f7] ↓ ColorTypes v0.10.2 ⇒ v0.9.1
  [5ae59095] ↓ Colors v0.12.0 ⇒ v0.11.2
  [53c48c17] ↓ FixedPointNumbers v0.8.0 ⇒ v0.7.1
  [4d00f742] ↓ GeometryTypes v0.8.2 ⇒ v0.7.10
  [bd48cda9] ↑ GraphRecipes v0.4.0 ⇒ v0.5.2
  [a98d9a8b] + Interpolations v0.12.9
  [6fe1bfb0] + OffsetArrays v1.0.4
  [c84ed2f1] + Ratios v0.4.0
  [efce3f68] + WoodburyMatrices v0.5.2

dgleich avatar Apr 24 '20 19:04 dgleich

Thanks for opening this issue. As part of #117 I am putting all of the edges into one series and I am making extra sure that the nearest intersection is not calculated unless you really want a directed graph with arrows on it. I don't think that your arrow=false will make sure that graphplot wont compute where edges intersect with nodes, although it should.

It will be interesting to try out the performance once I have all of that lined up.

JackDevine avatar Apr 27 '20 01:04 JackDevine