# Using Plots for the first time

**URL:** <https://discourse.julialang.org/t/using-plots-for-the-first-time/58289>\
**Category:** Visualization\
**Created:** [March 31, 2021, 12:30pm UTC](https://discourse.julialang.org/t/using-plots-for-the-first-time/58289 "2021-03-31T12:30:41Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![erlebach1](https://avatars.discourse-cdn.com/v4/letter/e/ed655f/32.png) [@erlebach1](https://discourse.julialang.org/u/erlebach1)\
**Post date:** [March 31, 2021, 12:30pm UTC](https://discourse.julialang.org/t/using-plots-for-the-first-time/58289/1 "2021-03-31T12:30:41Z")

</div>

I just installed Julia 1.6 and noted the much faster compile times. Thanks!  
When executing `using Plots` for the first time, Julia when through a whole series of compiling steps. Here is a small piece of what scrolled by:

![2021-03-31_08-27-38](https://global.discourse-cdn.com/julialang/original/3X/0/8/08df11eb847f5a3fcd03cd3ae1bbede47571af82.jpeg)

Notice `DifferentialEquations`, which does not appear in the Manifest under `Plots`:

```julia
[[Plots]]
deps = ["Base64", "Contour", "Dates", "FFMPEG", "FixedPointNumbers", "GR", "GeometryBasics", "JSON", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "PlotThemes", "PlotUtils", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs"]

```

Nor does `DifferentialEquations` appear anywhere in the Manifest other than  
`[[DifferentialEquations]]`

So I was wondering how to interpret the output above? Why would `DifferentialEquations` even make an appearance when loading `Plots`? Thanks.

---

<div class="post-metadata">

**Author:** ![lmiq](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lmiq/32/18314_2.png) [@lmiq](https://discourse.julialang.org/u/lmiq)\
**Post date:** [March 31, 2021, 2:19pm UTC](https://discourse.julialang.org/t/using-plots-for-the-first-time/58289/2 "2021-03-31T14:19:34Z")

</div>

It is possible that it is a dependency of a dependency. One would need to check the complete dependency tree to see if each of those packages are not there. I guess they are somewhere. (edit: I guess in that case it should appear on Manifest, right?)

---

<div class="post-metadata">

**Author:** ![oxinabox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oxinabox/32/206603_2.png) [@oxinabox](https://discourse.julialang.org/u/oxinabox)\
**Post date:** [March 31, 2021, 2:32pm UTC](https://discourse.julialang.org/t/using-plots-for-the-first-time/58289/3 "2021-03-31T14:32:05Z")

</div>

Precompilation runs per enviroment.  
So if your enviroment contrains `DifferentialEquations` at all, then it can be precompiled when you install something else to that enviroment (e.g. Plots).  
Sometiems things don’t need to be, if it can reuse something that was precompiled before.  
but sometimes it can’t.  
I don’t actually know why, might be invalidation because of common subdependencies?  
E.g. if installing Plots upgraded/downgraded a common subdependency that would void it.

---

<div class="post-metadata">

**Author:** ![erlebach1](https://avatars.discourse-cdn.com/v4/letter/e/ed655f/32.png) [@erlebach1](https://discourse.julialang.org/u/erlebach1)\
**Post date:** [March 31, 2021, 3:13pm UTC](https://discourse.julialang.org/t/using-plots-for-the-first-time/58289/4 "2021-03-31T15:13:44Z")

</div>

> [@oxinabox](#):
>
> Precompilation runs per enviroment.

Thank you both. However, DifferentialEquations was already precompiled. In fact if I load another Module (that is already installed), I see DifferentialEquations again. I am not saying it is compiled again. I am saying it is listed. It is strange.

---

<div class="post-metadata">

**Author:** ![oxinabox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oxinabox/32/206603_2.png) [@oxinabox](https://discourse.julialang.org/u/oxinabox)\
**Post date:** [March 31, 2021, 3:57pm UTC](https://discourse.julialang.org/t/using-plots-for-the-first-time/58289/5 "2021-03-31T15:57:39Z")

</div>

Precompilation runs per enviroment.  
It will list everything in your enviroment.  
I.e. everything in your Manifest.toml

---

<div class="post-metadata">

**Author:** ![erlebach1](https://avatars.discourse-cdn.com/v4/letter/e/ed655f/32.png) [@erlebach1](https://discourse.julialang.org/u/erlebach1)\
**Post date:** [March 31, 2021, 4:13pm UTC](https://discourse.julialang.org/t/using-plots-for-the-first-time/58289/6 "2021-03-31T16:13:29Z")

</div>

Thanks, I understand. So if I add a new package, and then import it via `using`, it will again go through the entire environment, albeit very fast? Thanks.

---

<div class="post-metadata">

**Author:** ![SebastianM-C](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sebastianm-c/32/2480_2.png) [@SebastianM-C](https://discourse.julialang.org/u/SebastianM-C)\
**Post date:** [March 31, 2021, 8:11pm UTC](https://discourse.julialang.org/t/using-plots-for-the-first-time/58289/7 "2021-03-31T20:11:42Z")

</div>

Yes. At the end of the process you can see that is says that a number of packages was already precompiled.

---

<div class="post-metadata">

**Author:** ![erlebach1](https://avatars.discourse-cdn.com/v4/letter/e/ed655f/32.png) [@erlebach1](https://discourse.julialang.org/u/erlebach1)\
**Post date:** [March 31, 2021, 8:25pm UTC](https://discourse.julialang.org/t/using-plots-for-the-first-time/58289/8 "2021-03-31T20:25:14Z")

</div>

Thanks! Ok, now I understand.
