Plotly.NET icon indicating copy to clipboard operation
Plotly.NET copied to clipboard

interactive graphing library for .NET programming languages :chart_with_upwards_trend:

Build and test Discord

We are currently in the process of writing a software paper on Plotly.NET. in the meantime, if you are using Plotly.NET for your research please cite the zenodo archive:

DOI

Plotly.NET provides functions for generating and rendering plotly.js charts in .NET programming languages 📈🚀.

Table of contents

  • Installation
    • For applications and libraries
    • For scripting
    • For dotnet interactive notebooks
    • Nightly builds
  • Documentation
    • Getting started
    • Full library reference
  • Develop
    • build
    • docs
  • Contributors
  • Library license

Installation

The most recent Plotly.NET package is .

Plotly.NET also provides several extension packages:

Package Name Plotly.NET.Interactive Plotly.NET.ImageExport Plotly.NET.CSharp
Description Interactive formatting extension for .NET interactive notebooks programmatic static image export idiomatic C# API. Note that you can use the core API in C#, this package just removes some friction at some places. See bindings progress
Nuget

For applications and libraries

  • dotnet CLI
dotnet add package Plotly.NET <version>
  • paket CLI
paket add Plotly.NET --version <version>
  • package manager
Install-Package Plotly.NET -Version <version>

Or add the package reference directly to your .*proj file:

<PackageReference Include="Plotly.NET" Version="<version>" />

For scripting

You can include the package via an inline package reference:

#r "nuget: Plotly.NET, <version>"

For dotnet interactive notebooks

You can use the same inline package reference as in script, but as an additional goodie, the interactive extensions for dotnet interactive have you covered for seamless chart rendering:

#r "nuget: Plotly.NET, <version>"
#r "nuget: Plotly.NET.Interactive, <version>"

Getting nightly builds

[click 🖱️]

The nightly builds are located on myget.org.

For your project:

dotnet new nugetconfig
dotnet nuget add source https://www.myget.org/F/plotly-net-nightly/api/v3/index.json
dotnet add package Plotly.NET --prerelease

Interactively:

#i "https://www.myget.org/F/plotly-net-nightly/api/v3/index.json"
#r "nuget:Plotly.NET, *-*"
#r "nuget:Plotly.NET.Interactive, *-*"

Documentation

Getting started

The landing page of our docs contains everything to get you started fast, check it out 📖 here

Full library reference

The API reference is available 📚 here

The documentation for this library is automatically generated (using FSharp.Formatting) from *.fsx and *.md files in the docs folder. If you find a typo, please submit a pull request!

Development

Note: The release and prerelease build targets assume that there is a NUGET_KEY environment variable that contains a valid Nuget.org API key.

build

Check the build project to take a look at the build targets. Here are some examples:

# Windows

# Build only
./build.cmd

# Full release buildchain: build, test, pack, build the docs, push a git tag, publish thze nuget package, release the docs
./build.cmd release

# The same for prerelease versions:
./build.cmd prerelease


# Linux/mac

# Build only
build.sh

# Full release buildchain: build, test, pack, build the docs, push a git tag, publísh the nuget package, release the docs
build.sh release

# The same for prerelease versions:
build.sh prerelease

docs

The docs are contained in .fsx and .md files in the docs folder. To develop docs on a local server with hot reload, run the following in the root of the project:

# Windows
./build.cmd watchdocs

# Linux/mac
./build.sh watchdocs

Contributors

Plotly.NET is a community maintained open source projects. Big thanks to all contributors!

Library license

The library is available under the MIT license.