I’ll note down my steps to get ggplotnim to work on Windows starting
  from a default Windows 10 installation without any development tools.
For me the first steps to get set up my development environment is to:
- install git
- install emacsand clone my settings
- and then set up additional tools, in this case nimandggplotnim.
Since I don’t want to use tools like msys2 or similar, I decided to install plain git from git’s website:
https://git-scm.com/download/win
Just run the installer and allow it to add git to the Windows PATH,
  so that we can use it from PowerShell.
After installation we can verify that it was added to PATH manually:
- Windows key
- path
- “edit system environment variables”
- “Environment Variables” in the bottom right corner
- check “System variables” (bottom window)
- click on “Path”
and there should be a new line, by default:
C:\Program Files\Git\cmdLaunching PowerShell we can verify that it indeed works.
Again I don’t use any third party software to install emacs, but go
  straight to the emacs page of GNU:
https://www.gnu.org/software/emacs/download.html
and download the current version from the linked FTP:
https://mirrors.kernel.org/gnu/emacs/windows/emacs-26/emacs-26.3-x86_64.zip
(download the signature and check it!)
Once installed, we have to add emacs to the Windows PATH manually
  (which is why I explained above where the PATH can be changed).
Instead of adding to the system PATH, I only added to my user’s PATH (top window in the “Environment Variables” window from above). Just add a new field for the PATH variable with the path to where you extracted the emacs archive.
With git and emacs working, it’s time for me to download my
  configuration. Launch a PowerShell:
cd ~/Documents/config/ 
git clone https://github.com/vindaar/emacs.dOnce that is done we have to copy the contents to the location where emacs expects the files.
To avoid having to figure out where the emacs configuration is
  supposed to be on Windows, I just launch emacs and then open an
  eshell (M-x eshell).
In eshell:
cd ~
pwd
# should point to c:/Users/<UserName>/AppData/Roaming
cp -r c:/Users/<UserName>/Documents/config/emacs.d/* .emacs.d/Note that you can’t use ~/Documents here, since
  c:/users/<UserName> is not considered the home directory by emacs!
Once done, close and relaunch emacs (you could just load the new
  config, but well). Installation should only take a minute.
Our next step should be to install Nim.
We just download the current release manually from Nim’s website:
https://nim-lang.org/install_windows.html
(Manual installation)
Download and put somewhere you want Nim to live, in my case:
<a href=”c:/Users//Documents/src/nim-1.0.6/”>c:/Users/<UserName>/Documents/src/nim-1.0.6/
And as Araq always says ( ;) ), don’t forget to run that finish.exe
  in the root of the Nim directory. It will add Nim and Nimble to the
  PATH and also install mingw64.
Once the installation of mingw64 is done, launch another PowerShell
  to see if Nim is found:
nim --versionNim Compiler Version 1.0.6 [Windows: amd64] Compiled at 2020-01-23 Copyright (c) 2006-2019 by Andreas Rumpf git hash: 89b39ee8fe271d0e1b75c15a4c6cf82eb9c13aea active boot switches: -d:release
should work.
Now we use Nimble to install ggplotnim and its dependencies. In
  PowerShell:
nimble install ggplotnimHowever, in order to properly test the package and since I obviously
  work / test on ggplotnim, I’ll actually clone the git repository and
  link that repository to Nimble via nimble develop:
cd ~/Documents/src/
git clone https://github.com/vindaar/ggplotnim
cd ggplotnim
nimble developOnce done, let’s see what happens when we compile and run one of the recipes:
cd ggplotnim
nim c -r recipes/rSimpleLinePlot.nimAnd, uhm, I’m rather surprised to see that it both compiled and ran successfully.
I was actually expecting to see something along the lines of:
could not load libcairo-2.dll
or something.
Weird.
Let’s try a different example in which we save as a PDF. Create the
  following file in the playground directory in the ggplotnim
  directory:
import ggplotnim
let df = toDf(readCsv("data/mpg.csv"))
ggplot(df, aes("hwy", "cyl")) + 
  geom_point() + 
  ggsave("test.pdf")Also works.
I figured it out…
The “issue” (read: solution) is that by installing emacs and adding
  its bin directory to my PATH, I provide required dependencies.
Since emacs on Windows is built on top of GTK (cairo is a GTK
  dependency) I installed cairo properly without realizing it.
So, to figure out the depencies that are actually required for users
  who don’t use emacs (which is certainly the majority of people who
  want to use ggplotnim on Windows, I imagine), let’s go over how to
  install it properly.
Before I do this, I remove the emacs bin directory from my
  PATH. Once done, I do indeed get the following error running the code
  above:
Hint: C:\Users\basti\Documents\src\ggplotnim\playground\testPdf.exe  [Exec]
could not load: libcairo-2.dll
Error: execution of an external program failed: 'C:\Users\basti\Documents\src\ggplotnim\playground\testPdf.exe 'According to the cairo website, the recommended way of installing it
  on Windows is to get it as a side effect of installing GTK+, since
  cairo is a dependency.
https://www.cairographics.org/download/
The important part however is the following:
You probably want at least the zlib, cairo, and libpng run-time archives (you can search on those strings to find them in the page). That should be it. Just pop libcairo-2.dll, libpng13.dll and zlib1.dll into your working directory or system PATH, and away you go!
which tells us which libraries we will actually need.
Nim already ships:
- zlip1.dll
- libpng3.dll
- libpng12.dll=
So for zlib we should be good. Maybe we need a different libpng
  version though.
Unfortunately, the GTK+ website is offline right now, but people on stack exchange say the prebuilt GTK version for Windows is outdated anyways.
Maybe we should simply use msys2 to install gtk+ after all…
So do that, but we only use it to get access to the required DLLs. We will copy those to some sane place, which we add to PATH.
Once installed, run
pacman -Syuand then I’m explicitly told to kill the window (wtf?) and do it again. Once the second round is done, install gtk:
pacman -S mingw-w64-x86_64-gtk3…
Given the installation size of 500 MB it’s probably faster and easier to just download emacs for Windows even if you don’t use it sigh.
Once that is done, take a look into:
cd C:\msys64\mingw64\binit will contain the libcairo-2.dll.
Originally I wanted to just extract the DLLs that are required, but
  well. Let’s say it’s more than the cairo website makes us
  believe. libpng and libcairo alone are not sufficient. So instead
  let’s add the above directory to Windows’ PATH after all.
Once that is done the ggplotnim samples should compile just fine, i.e. there is no need to copy any DLLs next to the binaries.
Thank you!