plotly.net

Interactive graphing library for .NET programming languages :chart_with_upwards_trend:

https://github.com/plotly/plotly.net

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    2 of 31 committers (6.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.4%) to scientific vocabulary

Keywords

csharp d3 dotnet dotnet-core fsharp graph-library plotly plotlyjs webgl
Last synced: 6 months ago · JSON representation ·

Repository

Interactive graphing library for .NET programming languages :chart_with_upwards_trend:

Basic Info
  • Host: GitHub
  • Owner: plotly
  • License: mit
  • Language: F#
  • Default Branch: dev
  • Homepage: https://plotly.net
  • Size: 77.4 MB
Statistics
  • Stars: 799
  • Watchers: 40
  • Forks: 99
  • Open Issues: 45
  • Releases: 19
Topics
csharp d3 dotnet dotnet-core fsharp graph-library plotly plotlyjs webgl
Created almost 10 years ago · Last pushed 7 months ago
Metadata Files
Readme License Code of conduct Citation

README.md

Build and test Discord DOI

Maintained by the Plotly Community

Table of contents

What is Plotly.NET?

Plotly.NET is an Interactive charting library for .NET programming languages 📈🚀.

It is built on top of plotly.js and provides several API layers for creating, styling and rendering ✨beautiful data visualizations✨.

To get a deep-dive into the rationale behind the design choices of Plotly.NET, check out our F1000Research paper!

In short, Plotly.NET consists of multiple API layers and packages:

  • Plotly.NET - The core API is written in F# and provides multiple API layers to create and style charts - from the high-level, type-safe Chart API to low-level direct chart object manipulation. It is the foundation for all other packages.

  • Plotly.NET.Interactive - This package provides interactive formatting extensions for .NET interactive notebooks.

  • Plotly.NET.ImageExport - This package provides extensions for Plotly.NET to render charts as static images programmatically.

  • Plotly.NET.CSharp - This package provides an idiomatic C# API. Note that you can use the core API in C#, this package just removes some friction at some places.

    Installation

You can get all Plotly.NET packages via nuget:

| Package Name| Nuget | |---|---| | Plotly.NET | | | Plotly.NET.Interactive | | | Plotly.NET.ImageExport | | | Plotly.NET.CSharp | |

Documentation

Quick starts

F

In F# projects, just add the Plotly.NET package to your project and you are ready to go!

📖 Polyglot Notebook 📖 Quick start
To enable Plotly.NET in a polyglot notebook, reference the `Plotly.NET.Interactive` package: ```fsharp #r "nuget: Plotly.NET.Interactive" ``` To display a chart, just end a F# cell with it: ```fsharp open Plotly.NET Chart.Point( x = [0 .. 10], y = [0 .. 10] ) |> Chart.withTitle "Hello World!" ``` ![notebook quichstart in F#](docs/img/notebook_quickstart_fsharp.png)
.fsx Scripting quickstart To enable Plotly.NET in a .fsx script, reference the `Plotly.NET` package: ```fsharp #r "nuget: Plotly.NET" ``` To display a chart in your browser, use the `Chart.show` function: ```fsharp open Plotly.NET Chart.Point( x = [0 .. 10], y = [0 .. 10] ) |> Chart.withTitle "Hello World!" |> Chart.show ```

C

In C# projects, just add the Plotly.NET.CSharp package to your project and you are ready to go!

📖 Polyglot Notebook 📖 Quick start
To enable Plotly.NET in a polyglot notebook for C#, reference the `Plotly.NET.Interactive` and `Plotly.NET.CSharp` packages: ```csharp #r "nuget: Plotly.NET.Interactive" #r "nuget: Plotly.NET.CSharp" ``` To display a chart, just end a C# cell with it: ```csharp using Plotly.NET.CSharp; Chart.Point( x: Enumerable.Range(0,11), y: Enumerable.Range(0,11) ) ``` ![notebook quichstart in C#](docs/img/notebook_quickstart_csharp.png)

Samples and tutorials

You can find extensive documentation with samples and tutorials of the core Plotly.NET library 📖 here.

Full library reference

The API reference for all packages 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:

```shell

Windows

Build only

./build.cmd

Full release buildchain: build, test, pack, build the docs, push a git tag, publish the 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

```

running and writing tests

please refer to the detailed readme in the tests folder

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:

```shell

Windows

./build.cmd watchdocs

Linux/mac

./build.sh watchdocs ```

Contributors

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

Library license

The library is available under the MIT license.

FAQ

Why are there two separate packages for C# and F#?
These packages are not separate, Plotly.NET.CSharp is built **on top** of Plotly.NET. `Plotly.NET` (written in F#) is the main project. It is designed with interoperability in mind, and it is possible to use it from C#. Over the years, some friction between F# and C# have surfaced that cannot be overcome in the F# codebase. For more info, take a look at this issue where we discuss the topic: https://github.com/plotly/Plotly.NET/issues/285 The `Plotly.NET.CSharp` package (written in C#, using the F# API internally) is a thin wrapper around the core API. It is not necessary to use it, but it can make the API more idiomatic and ergonomic for C# users.
Can I use Plotly.NET in [insert your UI library here]?
It depends. Plotly.NET creates JSON for consumption by the plotly.js library. The actual rendering is done by plotly.js, in an environment where javascript can be run. This means that your UI libs needs some way of displaying html and executing javascript to be compatible with Plotly.NET. That is true for most UI libs though, [here for example is a POC for Blazor](). For Windows Forms and WPF you could use a WebView control to display the charts. You could also use Plotly.NET.ImageExport in your backend to create static images of your charts and serve those in your UI.

Owner

  • Name: Plotly
  • Login: plotly
  • Kind: organization
  • Location: Montréal

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Schneider
    given-names: Kevin
    orcid: https://orcid.org/0000-0002-2198-5262
  - family-names: Venn
    given-names: Benedikt
    orcid: https://orcid.org/0000-0003-4203-1596
  - family-names: WhiteBlackGoose
    orcid: https://orcid.org/0000-0002-6948-1733
  - family-names: Mühlhaus
    given-names: Timo
    orcid: https://orcid.org/0000-0003-3925-6778
title: "Plotly.NET: A fully featured charting library for .NET programming languages"
doi: "10.5281/zenodo.6344285"
preferred-citation:
  type: article
  authors:
  - family-names: Schneider
    given-names: Kevin
    orcid: https://orcid.org/0000-0002-2198-5262
  - family-names: Venn
    given-names: Benedikt
    orcid: https://orcid.org/0000-0003-4203-1596
  - family-names: Mühlhaus
    given-names: Timo
    orcid: https://orcid.org/0000-0003-3925-6778
  doi: "10.12688/f1000research.123971.1"
  journal: "F1000Research"
  month: 9
  title: "Plotly.NET: A fully featured charting library for .NET programming languages [version 1; peer review: 1 approved, 1 approved with reservations]"
  issue: 1094
  volume: 11
  year: 2022

GitHub Events

Total
  • Issues event: 29
  • Watch event: 137
  • Member event: 1
  • Issue comment event: 36
  • Push event: 16
  • Pull request review comment event: 5
  • Pull request review event: 7
  • Pull request event: 9
  • Fork event: 16
  • Create event: 3
Last Year
  • Issues event: 29
  • Watch event: 137
  • Member event: 1
  • Issue comment event: 36
  • Push event: 16
  • Pull request review comment event: 5
  • Pull request review event: 7
  • Pull request event: 9
  • Fork event: 16
  • Create event: 3

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 1,040
  • Total Committers: 31
  • Avg Commits per committer: 33.548
  • Development Distribution Score (DDS): 0.215
Past Year
  • Commits: 38
  • Committers: 4
  • Avg Commits per committer: 9.5
  • Development Distribution Score (DDS): 0.184
Top Committers
Name Email Commits
Kevin Schneider s****v@o****e 816
Timo Mühlhaus m****s@b****e 82
WhiteBlackGoose w****g@a****g 47
bvenn v****n@r****e 18
muehl m****l@P****C 17
Timo Mühlhaus m****s@o****m 13
Benedikt Venn b****n@g****e 5
Greg Wilson g****n@p****y 4
Flippie F****k@g****m 3
Jonathan Ott j****4@g****m 3
Luis Quintanilla 4****a 3
Pierre Irrmann p****n@g****m 3
nhirschey n****y 3
Artem Makhno a****o@d****m 2
David Handschke h****3@l****m 2
Faisal Waris f****s@l****m 2
kkkmail k****k@j****t 2
Gregor Beyerle g****e@g****m 2
dlfelps d****s@g****m 1
chausner 1****r 1
TheKiiiing 8****g 1
Steffen Forkmann s****n@g****m 1
Peter Butzhammer p****r@b****e 1
Matt Eland M****d@G****m 1
Marcos Magueta m****s@g****m 1
Jake 3****T 1
Helmut Dobretzberger h****r@a****e 1
HLWeil h****l@t****e 1
Gauthier Segay s****r 1
Eric Erhardt e****t@m****m 1
and 1 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 87
  • Total pull requests: 45
  • Average time to close issues: 8 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 49
  • Total pull request authors: 15
  • Average comments per issue: 2.75
  • Average comments per pull request: 1.07
  • Merged pull requests: 42
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 18
  • Pull requests: 7
  • Average time to close issues: 11 days
  • Average time to close pull requests: 29 days
  • Issue authors: 13
  • Pull request authors: 4
  • Average comments per issue: 1.39
  • Average comments per pull request: 0.57
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • kMutagene (32)
  • bvenn (8)
  • kentcb (4)
  • hoangdungt2 (4)
  • kunjiangkun (3)
  • nbevans (2)
  • jaguarxii (2)
  • Vic-M (2)
  • u3r (2)
  • LucasNmn (2)
  • nhirschey (2)
  • omaus (1)
  • ai-fwd (1)
  • johannehouweling (1)
  • karlipl (1)
Pull Request Authors
  • kMutagene (20)
  • bvenn (7)
  • WhiteBlackGoose (6)
  • caroott (3)
  • luisquintanilla (2)
  • WalternativE (2)
  • gvwilson (2)
  • tomaspavlic (1)
  • TheKiiiing (1)
  • HLWeil (1)
  • pirrmann (1)
  • eerhardt (1)
  • fwaris (1)
  • kkkmail (1)
  • forki (1)
Top Labels
Issue Labels
Type: Enhancement (22) Area: MissingAbstraction (21) Area: Core API (11) Type: Bug (8) up-for-grabs (7) Priority: Medium (7) help wanted (6) Priority: High (5) Area: ImageExport (4) Area: CSharp (4) Type: Question (4) FeatureRequest (4) Status: In Progress (3) Status: Needs Repro (3) Priority: Low (2) Area: Interactive (2) Type: Maintenance (2) Area: Documentation (2) Status: Available (1) Status: Review Needed (1) Status: Pending (1) Priority: Critical (1) Status: Blocked (1) Area: Meta (1)
Pull Request Labels
Area: Documentation (3)

Packages

  • Total packages: 4
  • Total downloads:
    • nuget 1,408,052 total
  • Total dependent packages: 11
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 130
  • Total maintainers: 3
nuget.org: plotly.net

plotly.js charts in .NET programming languages 📈🚀.

  • Versions: 48
  • Dependent Packages: 10
  • Dependent Repositories: 0
  • Downloads: 785,489 Total
Rankings
Downloads: 3.4%
Average: 12.0%
Dependent repos count: 13.8%
Dependent packages count: 18.8%
Maintainers (3)
Last synced: 6 months ago
nuget.org: plotly.net.imageexport

An easily extensible library to render static images from Plotly.NET charts.

  • Versions: 22
  • Dependent Packages: 1
  • Dependent Repositories: 0
  • Downloads: 338,228 Total
Rankings
Downloads: 5.7%
Average: 12.8%
Dependent repos count: 13.8%
Dependent packages count: 18.8%
Maintainers (1)
Last synced: 6 months ago
nuget.org: plotly.net.interactive

A .NET Interactive Kernel Extension for displaying Plotly.NET charts.

  • Versions: 43
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 7.3%
Average: 13.5%
Dependent packages count: 19.7%
Last synced: 6 months ago
nuget.org: plotly.net.csharp

Native C# bindings for Plotly.NET 📈🚀.

  • Versions: 17
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 284,335 Total
Rankings
Downloads: 9.7%
Dependent repos count: 13.8%
Average: 14.1%
Dependent packages count: 18.8%
Maintainers (3)
Last synced: 6 months ago

Dependencies

.github/workflows/build-and-deploy-docs.yml actions
  • JamesIves/github-pages-deploy-action 3.7.1 composite
  • actions/checkout v2 composite
  • actions/setup-dotnet v1 composite
.github/workflows/build-and-test.yml actions
  • actions/checkout v2 composite
  • actions/setup-dotnet v1 composite
.github/workflows/check-formatting.yml actions
  • actions/checkout v2 composite
  • actions/setup-dotnet v1 composite
.github/workflows/push-prerelease.yml actions
  • actions/checkout v2 composite
  • actions/setup-dotnet v1 composite
.github/workflows/verify-docs.yml actions
  • actions/checkout v2 composite
  • actions/setup-dotnet v1 composite
docs/Dockerfile docker
  • jupyter/base-notebook latest build
src/Plotly.NET.CSharp/Plotly.NET.CSharp.csproj nuget
  • Plotly.NET 3.0.1
tests/Plotly.NET.CSharp.Tests/Plotly.NET.CSharp.Tests.csproj nuget
  • Microsoft.NET.Test.Sdk 16.9.4
  • coverlet.collector 3.0.2
  • xunit 2.4.1
  • xunit.runner.visualstudio 2.4.3
tests/Plotly.NET.Tests.CSharpInteroperability/Plotly.NET.Tests.CSharpInteroperability.csproj nuget
  • Microsoft.NET.Test.Sdk 16.9.4
  • coverlet.collector 3.0.2
  • xunit 2.4.1
  • xunit.runner.visualstudio 2.4.3