Giter VIP home page Giter VIP logo

oxyplot-avalonia's Introduction

nuget License Size

OxyPlot.Avalonia

OxyPlot is a plotting library for .NET. This package targets Avalonia applications.

dotnet add package OxyPlot.Avalonia

Usage

To use the library, add the following to your App.xaml:

<Application xmlns="https://github.com/avaloniaui"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             x:Class="Sensei.Presentation.Avalonia.App">
    <Application.Styles>
        <StyleInclude Source="avares://Avalonia.Themes.Default/DefaultTheme.xaml"/>
        <StyleInclude Source="avares://Avalonia.Themes.Default/Accents/BaseLight.xaml"/>
      
        <!-- Add the line below to get OxyPlot UI theme applied. -->
        <StyleInclude Source="resm:OxyPlot.Avalonia.Themes.Default.xaml?assembly=OxyPlot.Avalonia"/>
      
        <!-- Add the line below to get OxyPlot UI theme applied in Avalonia 11. -->
        <StyleInclude Source="avares://AvaloniaEdit/Themes/Simple/AvaloniaEdit.xaml"/>
    </Application.Styles>
</Application>

Then, you can add plots to your application, as such:

<avalonia:Plot Height="150" 
               PlotMargins="50 0 0 0"
               PlotAreaBorderColor="#999999">
    <avalonia:Plot.Series>
        <avalonia:AreaSeries 
            DataFieldX="Index"
            DataFieldY="Value"
            ItemsSource="{Binding Path=Values}"
            Color="#fd6d00" />
    </avalonia:Plot.Series>
</avalonia:Plot>

See the AvaloniaExamples project and OxyPlot Documentation to learn how to create more complex plots.

Installing Preview Versions

To access the latest version of OxyPlot.Avalonia you can add this repo as a submodule to your own git repo:

mkdir ./external
git submodule add [email protected]:oxyplot/oxyplot-avalonia.git ./external/oxyplot-avalonia
# Reference the ../external/oxyplot-avalonia/Source/OxyPlot.Avalonia/OxyPlot.Avalonia.csproj project then.

Another way is to import our Azure Artifacts NuGet package feed by creating the following nuget.config file:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear /> <!-- Add other external NuGet package sources here -->
    <add key="OxyPlot.Avalonia-CI" value="https://worldbeater.pkgs.visualstudio.com/OxyPlot.Avalonia/_packaging/OxyPlot.Avalonia-CI/nuget/v3/index.json" />
  </packageSources>
</configuration>

Next, install the latest preview version of the OxyPlot.Avalonia package as such:

dotnet add package OxyPlot.Avalonia

oxyplot-avalonia's People

Contributors

bblanchon avatar brannonking avatar bszypelow avatar colejohnson66 avatar dsyme avatar garyhertel avatar hankg avatar hendrikmennen avatar jeremyiverson avatar jkoritzinsky avatar jp2masa avatar justslon avatar kekekeks avatar levibotelho avatar lsowen avatar maxkatz6 avatar objorke avatar rstm-sf avatar visualmelon avatar westonsoftware avatar worldbeater avatar xilec avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oxyplot-avalonia's Issues

LineSeries has no 'ItemsSource' variable

I'm trying to port an application from WPF to Avalonia. But the Avalonia implementation of oxyplot's LineSeries object doesn't have an ItemsSource variable.

Has it been replaced with an alternative, is it not yet implemented, or something else?

Thanks for your help

How to add custom axis

If I make a custom axis using an OxyPlot.LinearAxis as the base class like:

public class CustomLinearAxis : LinearAxis
{
}

The background on my usercontrol hosting the PlotView that uses the custom axis turns black. It seems like it doesn't style properly.

Is there a way to add custom axes in OxyPlot-Avalonia properly?

OHLC series

Are oxyplot-avalonia OHLC time-series (candlestick) currently supported?

OxyPlot-Avalonia is falling behind OxyPlot.Core

OxyPlot.Core is changing quite a bit at the moment, and it will require some effort to update it upon the next release of OxyPlot to NuGet. I would be more than happy to do much of this work - I'm (very slowly) evaluating Avalonia and I reckon OxyPlot.Avalonia would benefit from some recent/on-going additions to the main library - but to do that in a sensible manner requires this repo reference pre-release versions of OxyPlot. There are two obvious ways to do this:

  • Add OxyPlot as a git sub-module and reference the projects directly
  • Add nuget references to pre-release versions of OxyPlot in develop

Either option would create some difficulty for users consuming pre-release versions of OxyPlot.Avalonia, but if they can work out how to do that, it shouldn't be a too big an issue to pick up a pre-release version of OxyPlot.Core either. I prefer the second option for a number of reasons (fewer changes, less complexity for contributors, ability to update incrementally) but I wonder if other people have a better idea, or can explain why that would be a bad idea.

A background operation called ObservableCollection<point> causes a Call from invalid thread

UI Binding like this
<oxy:Plot Grid.Row="1" Margin="5"> <oxy:Plot.Axes> <oxy:LinearAxis Title="Value" Position="Right" Minimum="-3" Maximum="3" IsZoomEnabled="False" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" /> <oxy:LinearAxis Position="Bottom" MajorGridlineStyle="Dot" MinorGridlineStyle="Dot" /> </oxy:Plot.Axes> <oxy:Plot.Series> <oxy:LineSeries Items="{Binding DataSeries}" DataFieldX="Index" DataFieldY="Value" /> </oxy:Plot.Series> </oxy:Plot>
define like this
public ObservableCollection<Point> DataSeries { get; set; } = new ObservableCollection<Point>();

An exception occurred when i update the value of DataSeries in the background thread.
In WPF is OK, How do I update UI values in the background thread?

System.InvalidOperationException: Call from invalid thread at Avalonia.Threading.Dispatcher.VerifyAccess() in /_/src/Avalonia.Base/Threading/Dispatcher.cs:line 48 at Avalonia.AvaloniaObject.GetValue[T](StyledPropertyBase1 property) in /_/src/Avalonia.Base/AvaloniaObject.cs:line 251
at OxyPlot.Avalonia.PlotBase.InvalidatePlot(Boolean updateData) in D:\xyao\Softwares\DNVM\Common\OxyPlot.Avalonia\PlotBase.cs:line 239
at OxyPlot.Avalonia.Series.OnDataChanged() in D:\xyao\Softwares\DNVM\Common\OxyPlot.Avalonia\Series\Series.cs:line 196
at OxyPlot.Avalonia.Series.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs notifyCollectionChangedEventArgs) in D:\xyao\Softwares\DNVM\Common\OxyPlot.Avalonia\Series\Series.cs:line 275
at OxyPlot.Avalonia.Series.EventListener.OnEvent(Object sender, NotifyCollectionChangedEventArgs e) in D:\xyao\Softwares\DNVM\Common\OxyPlot.Avalonia\Series\Series.cs:line 299
at Avalonia.Utilities.WeakSubscriptionManager.Subscription1.OnEvent(Object sender, T eventArgs) in /_/src/Avalonia.Base/Utilities/WeakSubscriptionManager.cs:line 184 at System.Collections.ObjectModel.ObservableCollection1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
at System.Collections.ObjectModel.ObservableCollection1.InsertItem(Int32 index, T item) at System.Collections.ObjectModel.Collection1.Add(T item)
at Dnvm.Modules.Sensor.ViewModels.SensorCollectionViewModel.PointUpdate(Int32 sensorId, Point point) in D:\xyao\Softwares\DNVM\Dnvm.Common\Dnvm.Modules\Dnvm.Modules.Sensor\ViewModels\SensorCollectionViewModel.cs:line 74
at Dnvm.Core.Services.SensorManager.Update(Int32 sensorId, ConnectType connectType, List1 data) in D:\xyao\Softwares\DNVM\Dnvm.Common\Dnvm.Core\Services\SensorManager.cs:line 178 at Dnvm.Core.Services.NetworkTCP.TSession.Sampling(MemoryStream ms) in D:\xyao\Softwares\DNVM\Dnvm.Common\Dnvm.Core\Services\NetworkTCP\TSession.cs:line 108 at Dnvm.Core.Services.NetworkTCP.TSession.OnRead(Int64 channelId, MemoryStream memoryStream) in D:\xyao\Softwares\DNVM\Dnvm.Common\Dnvm.Core\Services\NetworkTCP\TSession.cs:line 56 at Dnvm.Core.Services.NetworkTCP.TSessionManager.OnRead(Int64 channelId, MemoryStream memoryStream) in D:\xyao\Softwares\DNVM\Dnvm.Common\Dnvm.Core\Services\NetworkTCP\TSessionManager.cs:line 64 at Dnvm.Core.IServices.Network.AService.OnRead(Int64 channelId, MemoryStream memoryStream) in D:\xyao\Softwares\DNVM\Dnvm.Common\Dnvm.Core\IServices\Network\AService.cs:line 72 at Dnvm.Core.Services.NetworkTCP.TChannel.OnRead(MemoryStream memoryStream) in D:\xyao\Softwares\DNVM\Dnvm.Common\Dnvm.Core\Services\NetworkTCP\TChannel.cs:line 390

No support for non-interpolated images.

The interpolate parameter of CanvasRenderContext.DrawImage (code) is ignored. The effect can be seen in the matrix examples:

Screenshot from the OxyPlot-Avalonia example browser, example Custom Series > Design Structure Matrix:

image

This should appear like this (from OxyPlot.WindowsForms example browser):

image

(A workaround for heatmaps is to use HeatMapRenderMethod.Rectangles)

Exception in oxyplot.Avalonia's StyleInclude

Hey,

I'm trying to update my project to Avalonia 11, but I had some problems with the Oxyplot.Avalonia nuget package.
On the oxyplot-avalonia main page on github there is an instruction for using oxyplot with Avalonia 11 which I think is wrong, it says AvaloniaEdit in StyleInclude (see screenshot below)

image

I've read the oxyplot.Avalonia examples and they use the code below to include the style:

StyleInclude Source="avares://OxyPlot.Avalonia/Themes/Default.axaml"/>

But in my project I get the following exception in this code: No precompiled XAML found for avares://OxyPlot.Avalonia/Themes/Default.axaml (baseUri: avares://Nimloth/App.axaml), make sure to specify x:Class and include your XAML file as AvaloniaResource

I'm using the latest version of the oxyplot.avalonia nuget package, 2.1.0, and Avalonia 11.0.6

Can't hide plost series while keeping the legend

I was trying to hide/unhide a series by double clicking on the relative legend text. I got to the point where i can get the series i want to hide, but setting the IsVisible property of the series to false seems to also remove it/hide it from the legend. This is a problem, sinceif the legend disappear, the user can't unhide the series anymore. Is there any way to do this in the current version?

Rotated text is misaligned.

Rotated text is misaligned. This is apparent on the TextAnnotation example of the Example Browser, but can also be observed on any plot with a title on the Y axis.

image

An additional figure showing the behaviour more clearly:

image

I don't have any time now, but I intend to look into this myself at some point.

`PngExporter.Resolution` is ignored

I am attempting to export a chart to a PNG for inclusion in a PDF, so I need a resolution of 300+ dpi, not 96. My attempt to do so is this:

using (MemoryStream stream = new())
{
    OxyPlot.Avalonia.PngExporter exporter = new();
    exporter.Background = OxyColor.FromRgb(52, 58, 63);
    exporter.Width *= 2;
    exporter.Height *= 2;
    exporter.Resolution *= 2; // not 300; just for proof of issue
    exporter.Export(Chart, stream);
    File.WriteAllBytes("chart.png", stream.GetBuffer());
}

My issue is that the saved PNG file is 1400x800, but the actual rendering of the chart is 700x400 and shoved in the top-left corner.

Some digging seems to suggest this is related to Skia as the documentation for Avalonia.Media.Imaging.IBitmap.Dpi says:

Note that Skia does not currently support reading the DPI of an image so this value will always be 96dpi on Skia.

@VisualMelon suggests that this is actually a problem in Avalonia's implementation of the render code, specifically:

I probably won't get around to fixing it today, but line 121 of PngExporter looks wrong (should use the canvas size, not the unscaled Width/Height)

OxyPlot.Avalonia user error

Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:vm="using:AvaloniaApplication1.ViewModels"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:views="clr-namespace:AvaloniaApplication1.Views"
        xmlns:oxy="using:OxyPlot.Avalonia"
        mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
        x:Class="AvaloniaApplication1.Views.MainWindow"
        Icon="/Assets/avalonia-logo.ico"
        Title="AvaloniaApplication1">
  <views:MainView>

    <TabControl>
      <Grid>
        <oxy:PlotView></oxy:PlotView>
      </Grid>
    </TabControl>
  </views:MainView>
</Window

build error:

[Error] 16196 UpdateXamlResult error
System.Xaml.XamlException: “Unable to resolve type PlotView from namespace using:OxyPlot.Avalonia Line 16, position 10.”,行号为“16”,行位置为“10”。

runtime error

System.IO.FileNotFoundException:“Could not load file or assembly 'Avalonia.Visuals, Version=0.10.11.0, Culture=neutral, PublicKeyToken=c8d484a7012f9a8b'. 系统找不到指定的文件。”

请问下为什么会出现编译和运行时错误

UI freezing on linux-arm

I have Avalonia project and try to run chart with oxyplot-avalonia on it,it works well on windows but when I publish it to run on linux-arm (I used ARM Cortex-A9 embedded device), the page which I use chart on it become freeze(without any exception on the output).
as I know it freezes when it try to render the chart, because if I don't pass DataPoint to it , the page works as usual.

Can't display OxiPlot pie series in Avalonia project

I am trying to display a pie graphic using the oxiplot tool, but I am not able to display the graphic. As seen in MainView.axaml I am trying to display the PieSeries chart using ItemsSource by binding a collection. However the chart is not displayed. Am I doing something wrong or is this a bug?
The code can be found here.
I am also not able to display the percentage numbers seen in the second pie chart in the attached picture. It seems that when the data is dynamic the percentage info is not displayed.
PieChartMissingPercentage

LineSeries Opacity not being applied

Setting opacity to LineSeries does not produce any change:

<oxy:LineSeries Color="#75a2ea" MarkerType="Circle" MarkerSize="2" Opacity="0.7" ...

Is this the right way to draw a semitransparent line?

CI Unhappy on Linux

The CI is working fine on Windows, but always fails on linux saying "An error occurred while provisioning resources". I don't know why this is the case. I don't think we broke anything, but naturally we should get this working again.

LineStyle is not applied correctly

If you run LegendsDemo, you will see that line style (example "Dashed") is not applied to the whole line, but just to the start, then becomes "Solid".

image

line series order change base on XAxis value

I have 3 Lineralseries and one AreaSeries, I need to show the AreaSeries behind of the LineSeries, this is my Xaml code:
<oxy:Plot.Series>
<oxy:AreaSeries Items="{Binding Measurements}" Fill="#EDCFAD" Color="Transparent" Color2="Transparent" ZIndex="-100" DataFieldX="Time" DataFieldY="Value0" DataFieldX2="Time" DataFieldY2="Value1"></oxy:AreaSeries>

<oxy:LineSeries Items="{Binding PointSeriesRef}" MarkerType="None" DataFieldX="Time" DataFieldY="Value0" MinimumSegmentLength="1" Color="Orange" BrokenLineColor="#ff0400"></oxy:LineSeries>

<oxy:LineSeries Items="{Binding PointSeriesAct}" MarkerType="None" DataFieldX="Time" DataFieldY="Value0" MinimumSegmentLength="1"></oxy:LineSeries>

<oxy:LineSeries Items="{Binding PointProgress}" MarkerType="None" DataFieldX="Time" DataFieldY="Value0" StrokeThickness="5" MarkerStrokeThickness="4" MinimumSegmentLength="1" Color="#5FF45D"></oxy:LineSeries>
</oxy:Plot.Series>

the problem is base on the Xaxis value, the order of the Series changed and AreaSeries masked other line series.
image

the correct output is this one
image

the only difference is Maximum value of XAxis.
Also I tried to fixed the series order by ZIndex but it's not working.

Does OxyPlot use System.Drawing?

Newbie here...

We're developing a cross-platform Windows / MacOS app using Avalonia. As you are probably aware Microsoft no longer supports cross-platform System.Drawing -- only Windows. So, my question concerns whether OxyPlot is also tethered to System.Drawing or does it use something else, like SkiaSharp?

Thanks...

Setting a backcolor for a textannotation causes the previous annotation to dissapear

As the title says, the backcolor property causes my text to disappear. When I remove background, the issue is gone.

Using Avalonia 0.10.6 on Windows 10 x64 and Raspbian OS
Using Oxplot.Core 2.0.0.0
Using Oxyplot Avalonia 0.10.0 modified to allow touch gesture to work

image

Here is my code to add a new point

_runCount++;
XAxis.Reset();
YAxis.Reset();
DataPoint point = new(_runCount, _engine.GetFinalDataPoint());
ChartSeries.Points.Add(point);
Chart.Annotations.Add(new TextAnnotation{TextPosition = point, 
Text = point.Y.ToString(_profile.YStringFormat),
Background = _annotationBackground, TextColor = _annotationForeground,
StrokeThickness = 1, Offset = new(0, -20), Layer = AnnotationLayer.AboveSeries});
XAxis.AbsoluteMinimum = XAxis.Minimum = 0;
XAxis.AbsoluteMaximum = XAxis.Maximum =_runCount + 1;
int interval = 1;
if (_runCount > 5)
    interval = (_runCount - _runCount % 5) / 5;
XAxis.MajorStep = interval;
YAxis.MaximumPadding = YAxis.MinimumPadding = 0.1;          
Chart.InvalidatePlot(true);

Here is my code to set up the graph, this is in single reading mode

 private void SetUpGraph()
        {
            if((int)_profile.DataCollectionType.Value == (int)CommonTypes.DataCollectionType.Continuous)
            {
                YAxis.Title = Language.Instance["StringLoad"] + " (" + GlobalVars.GlobalSettings.LoadUnit.Value + ")";
                YAxis.StringFormat = FrameHandler.LoadResolutionFormat;
                if ((int)_profile.XAxis.Value == (int)CommonTypes.XAxisType.Time) //Time
                {
                    XAxis.Title  = Language.Instance["StringTime"] + " (s)";
                    XAxis.StringFormat  = "0.00";
                }
                else //Distance
                {
                    XAxis.Title = Language.Instance["StringDistance"] + " (" + GlobalVars.GlobalSettings.DistanceUnit.Value + ")";
                    XAxis.StringFormat  = FrameHandler.DistanceResolutionFormat;
                }
            }
            else //Single Reading
            {
                XAxis.Title =  Language.Instance["StringReadingNumber"];
                YAxis.Title = _profile.ContinuousYAxisTitle; //TODO: Convert to language

                IsSingleReading = true;
                ChartSeries.MarkerSize = 6;
                ChartSeries.MarkerType = MarkerType.Diamond;
                ChartSeries.Points.Add(DataPoint.Undefined);
            }
            XAxis.AxisChanged += AxisChangedEvent;
            Chart.Axes.Add(XAxis);
            Chart.Axes.Add(YAxis);
            Chart.Series.Add(ChartSeries);
            Controller = new();
            Controller.UnbindTouchDown();
            Controller.BindTouchDown(PlotCommands.PanZoomByTouch);

Running into an Avalonia.Markup.Xaml.XamlLoadException

I updated my Avalonia project to 11.0.4, and trying to add oxyplot to my app. I add the NuGet package, add the Style in App.axaml,

<Application 
    xmlns="https://github.com/avaloniaui"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:AvaloniaGreenhouse"
    x:Class="AvaloniaGreenhouse.App">

    <Application.Styles>
        <SimpleTheme/>
        <StyleInclude Source="avares://OxyPlot.Avalonia/Themes/Default.axaml"/>
    </Application.Styles>
</Application>

Running the app to make sure it builds and runs, I get the following exception:

Avalonia.Markup.Xaml.XamlLoadException HResult=0x80131500 Message=No precompiled XAML found for avares://OxyPlot.Avalonia/Themes/Default.axaml (baseUri: avares://AvaloniaGreenhouse/App.axaml), make sure to specify x:Class and include your XAML file as AvaloniaResource Source=Avalonia.Markup.Xaml StackTrace: at Avalonia.Markup.Xaml.AvaloniaXamlLoader.Load(IServiceProvider sp, Uri uri, Uri baseUri) at Avalonia.Markup.Xaml.Styling.StyleInclude.get_Loaded() at Avalonia.Markup.Xaml.Styling.StyleInclude.Avalonia.Controls.IResourceProvider.AddOwner(IResourceHost owner) at Avalonia.Styling.Styles.InternalAdd(IList items, IResourceHost owner) at Avalonia.Styling.Styles.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e) at Avalonia.Collections.AvaloniaList1.NotifyAdd(T item, Int32 index)
at Avalonia.Collections.AvaloniaList1.Add(T item) at Avalonia.Styling.Styles.Add(IStyle item) at AvaloniaGreenhouse.App.!XamlIlPopulate(IServiceProvider , App ) in C:\Projects\Meadow.Desktop.Samples\Source\Windows\AvaloniaGreenhouse\App.axaml:line 9 at AvaloniaGreenhouse.App.!XamlIlPopulateTrampoline(App ) at AvaloniaGreenhouse.App.Initialize() in C:\Projects\Meadow.Desktop.Samples\Source\Windows\AvaloniaGreenhouse\App.axaml.cs:line 14 at Avalonia.AppBuilder.SetupUnsafe() at Avalonia.AppBuilder.Setup() at Avalonia.AppBuilder.SetupWithLifetime(IApplicationLifetime lifetime) at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime(AppBuilder builder, String[] args, ShutdownMode shutdownMode) at AvaloniaGreenhouse.App.Main(String[] args) in C:\Projects\Meadow.Desktop.Samples\Source\Windows\AvaloniaGreenhouse\App.axaml.cs:line 37

I've compared what I have with your example projects and I have no idea how to solve that exception.

No events to detect panning?

I'm trying to detect when the user "pans" the plot, to which position. I cannot find any usable event.
For example, original OxyPlot has OxyPlot.Axes.Axis.AxisChanged... but not Avalonia's?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.