# Is it necessary to add GR.jl?

**URL:** <https://discourse.julialang.org/t/is-it-necessary-to-add-gr-jl/85217>\
**Category:** Visualization\
**Tags:** gr\
**Created:** [August 3, 2022, 8:03am UTC](https://discourse.julialang.org/t/is-it-necessary-to-add-gr-jl/85217 "2022-08-03T08:03:26Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![vitaminace33](https://avatars.discourse-cdn.com/v4/letter/v/9dc877/32.png) [@vitaminace33](https://discourse.julialang.org/u/vitaminace33)\
**Post date:** [August 3, 2022, 8:03am UTC](https://discourse.julialang.org/t/is-it-necessary-to-add-gr-jl/85217/1 "2022-08-03T08:03:26Z")

</div>

[GR](https://github.com/jheinen/GR.jl) is the default backend for plotting and works out of the box. Hence, the question, is it necessary to add GR.jl via `Pkg.add`? Would this add any extra capabilities to plotting?

---

<div class="post-metadata">

**Author:** ![cjdoris](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cjdoris/32/213133_2.png) [@cjdoris](https://discourse.julialang.org/u/cjdoris)\
**Post date:** [August 3, 2022, 8:12am UTC](https://discourse.julialang.org/t/is-it-necessary-to-add-gr-jl/85217/2 "2022-08-03T08:12:58Z")

</div>

Nope, GR is a dependency of Plots, so when you install the latter, the former is installed automatically. Unless you need to use GR directly there is no need to add it yourself.

---

<div class="post-metadata">

**Author:** ![vitaminace33](https://avatars.discourse-cdn.com/v4/letter/v/9dc877/32.png) [@vitaminace33](https://discourse.julialang.org/u/vitaminace33)\
**Post date:** [August 3, 2022, 8:23am UTC](https://discourse.julialang.org/t/is-it-necessary-to-add-gr-jl/85217/3 "2022-08-03T08:23:42Z")

</div>

I see, adding/using/importing GR would simply give me the ability of accessing the exported names. Am I right?

Something I don’t get is, if GR.jl is a dependency of Plots.jl and the former is installed when the latter is added, why `using GR` returns `Package GR not found, but a package named GR is available from a registry.`?

---

<div class="post-metadata">

**Author:** ![cjdoris](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cjdoris/32/213133_2.png) [@cjdoris](https://discourse.julialang.org/u/cjdoris)\
**Post date:** [August 3, 2022, 8:48am UTC](https://discourse.julialang.org/t/is-it-necessary-to-add-gr-jl/85217/4 "2022-08-03T08:48:13Z")

</div>

Because (unlike say python) you can only import packages you have explicitly added to your project. This is necessary for Julia to track dependencies effectively and ensure you always have a compatible set of packages installed.

For example, if you were allowed to use GR without adding it, then if a future version of Plots decides to change its default backend and no longer depend on GR then when you update Plots your own project will break because GR is no longer there.
