Giter Club home page Giter Club logo

pnchart's Introduction

PNChart

Build Status

You can also find swift version at here https://github.com/kevinzhow/PNChart-Swift

A simple and beautiful chart lib with animation used in Piner and CoinsMan for iOS

Requirements

PNChart works on iOS 7.0+ and is compatible with ARC projects. If you need support for iOS 6, use PNChart <= 0.8.1. Note that 0.8.2 supports iOS 8.0+ only, 0.8.3 and newer supports iOS 7.0+.

It depends on the following Apple frameworks, which should already be included with most Xcode templates:

  • Foundation.framework
  • UIKit.framework
  • CoreGraphics.framework
  • QuartzCore.framework

You will need LLVM 3.0 or later in order to build PNChart.

Usage

Cocoapods

CocoaPods is the recommended way to add PNChart to your project.

  1. Add a pod entry for PNChart to your Podfile pod 'PNChart'
  2. Install the pod(s) by running pod install.
  3. Include PNChart wherever you need it with #import "PNChart.h".

Copy the PNChart folder to your project

#import "PNChart.h"

//For Line Chart
PNLineChart * lineChart = [[PNLineChart alloc] initWithFrame:CGRectMake(0, 135.0, SCREEN_WIDTH, 200.0)];
[lineChart setXLabels:@[@"SEP 1",@"SEP 2",@"SEP 3",@"SEP 4",@"SEP 5"]];

// Line Chart No.1
NSArray * data01Array = @[@60.1, @160.1, @126.4, @262.2, @186.2];
PNLineChartData *data01 = [PNLineChartData new];
data01.color = PNFreshGreen;
data01.itemCount = lineChart.xLabels.count;
data01.getData = ^(NSUInteger index) {
    CGFloat yValue = [data01Array[index] floatValue];
    return [PNLineChartDataItem dataItemWithY:yValue];
};
// Line Chart No.2
NSArray * data02Array = @[@20.1, @180.1, @26.4, @202.2, @126.2];
PNLineChartData *data02 = [PNLineChartData new];
data02.color = PNTwitterColor;
data02.itemCount = lineChart.xLabels.count;
data02.getData = ^(NSUInteger index) {
    CGFloat yValue = [data02Array[index] floatValue];
    return [PNLineChartDataItem dataItemWithY:yValue];
};

lineChart.chartData = @[data01, data02];
[lineChart strokeChart];

You can choose to show smooth lines.

lineChart.showSmoothLines = YES;

You can set different colors for the same PNLineChartData item. for instance you can use "color" red for values less than 50 and use purple for values greater than 150.

lineChartData.rangeColors = @[
        [[PNLineChartColorRange alloc] initWithRange:NSMakeRange(10, 30) color:[UIColor redColor]],
        [[PNLineChartColorRange alloc] initWithRange:NSMakeRange(100, 200) color:[UIColor purpleColor]]
];
#import "PNChart.h"

//For BarC hart
PNBarChart * barChart = [[PNBarChart alloc] initWithFrame:CGRectMake(0, 135.0, SCREEN_WIDTH, 200.0)];
[barChart setXLabels:@[@"SEP 1",@"SEP 2",@"SEP 3",@"SEP 4",@"SEP 5"]];
[barChart setYValues:@[@1,  @10, @2, @6, @3]];
[barChart strokeChart];
#import "PNChart.h"

//For Circle Chart

PNCircleChart * circleChart = [[PNCircleChart alloc] initWithFrame:CGRectMake(0, 80.0, SCREEN_WIDTH, 100.0) total:[NSNumber numberWithInt:100] current:[NSNumber numberWithInt:60] clockwise:NO shadow:NO];
circleChart.backgroundColor = [UIColor clearColor];
[circleChart setStrokeColor:PNGreen];
[circleChart strokeChart];
# import "PNChart.h"
//For Pie Chart
NSArray *items = @[[PNPieChartDataItem dataItemWithValue:10 color:PNRed],
                           [PNPieChartDataItem dataItemWithValue:20 color:PNBlue description:@"WWDC"],
                           [PNPieChartDataItem dataItemWithValue:40 color:PNGreen description:@"GOOL I/O"],
                           ];



PNPieChart *pieChart = [[PNPieChart alloc] initWithFrame:CGRectMake(40.0, 155.0, 240.0, 240.0) items:items];
pieChart.descriptionTextColor = [UIColor whiteColor];
pieChart.descriptionTextFont  = [UIFont fontWithName:@"Avenir-Medium" size:14.0];
[pieChart strokeChart];
# import "PNChart.h"
//For Scatter Chart

PNScatterChart *scatterChart = [[PNScatterChart alloc] initWithFrame:CGRectMake(SCREEN_WIDTH /6.0 - 30, 135, 280, 200)];
[scatterChart setAxisXWithMinimumValue:20 andMaxValue:100 toTicks:6];
[scatterChart setAxisYWithMinimumValue:30 andMaxValue:50 toTicks:5];

NSArray * data01Array = [self randomSetOfObjects];
PNScatterChartData *data01 = [PNScatterChartData new];
data01.strokeColor = PNGreen;
data01.fillColor = PNFreshGreen;
data01.size = 2;
data01.itemCount = [[data01Array objectAtIndex:0] count];
data01.inflexionPointStyle = PNScatterChartPointStyleCircle;
__block NSMutableArray *XAr1 = [NSMutableArray arrayWithArray:[data01Array objectAtIndex:0]];
__block NSMutableArray *YAr1 = [NSMutableArray arrayWithArray:[data01Array objectAtIndex:1]];
data01.getData = ^(NSUInteger index) {
    CGFloat xValue = [[XAr1 objectAtIndex:index] floatValue];
    CGFloat yValue = [[YAr1 objectAtIndex:index] floatValue];
    return [PNScatterChartDataItem dataItemWithX:xValue AndWithY:yValue];
};

[scatterChart setup];
self.scatterChart.chartData = @[data01];
/***
this is for drawing line to compare
CGPoint start = CGPointMake(20, 35);
CGPoint end = CGPointMake(80, 45);
[scatterChart drawLineFromPoint:start ToPoint:end WithLineWith:2 AndWithColor:PNBlack];
***/
scatterChart.delegate = self;

Legend

Legend has been added to PNChart for Line and Pie Charts. Legend items position can be stacked or in series.

#import "PNChart.h"

//For Line Chart

//Add Line Titles for the Legend
data01.dataTitle = @"Alpha";
data02.dataTitle = @"Beta Beta Beta Beta";

//Build the legend
self.lineChart.legendStyle = PNLegendItemStyleSerial;
UIView *legend = [self.lineChart getLegendWithMaxWidth:320];

//Move legend to the desired position and add to view
[legend setFrame:CGRectMake(100, 400, legend.frame.size.width, legend.frame.size.height)];
[self.view addSubview:legend];


//For Pie Chart

//Build the legend
self.pieChart.legendStyle = PNLegendItemStyleStacked;
UIView *legend = [self.pieChart getLegendWithMaxWidth:200];

//Move legend to the desired position and add to view
[legend setFrame:CGRectMake(130, 350, legend.frame.size.width, legend.frame.size.height)];
[self.view addSubview:legend];

Grid Lines

Grid lines have been added to PNChart for Line Chart.

lineChart.showYGridLines = YES;
lineChart.yGridLinesColor = [UIColor grayColor];

Update Value

Now it's easy to update value in real time

if ([self.title isEqualToString:@"Line Chart"]) {

    // Line Chart #1
    NSArray * data01Array = @[@(arc4random() % 300), @(arc4random() % 300), @(arc4random() % 300), @(arc4random() % 300), @(arc4random() % 300), @(arc4random() % 300), @(arc4random() % 300)];
    PNLineChartData *data01 = [PNLineChartData new];
    data01.color = PNFreshGreen;
    data01.itemCount = data01Array.count;
    data01.inflexionPointStyle = PNLineChartPointStyleTriangle;
    data01.getData = ^(NSUInteger index) {
        CGFloat yValue = [data01Array[index] floatValue];
        return [PNLineChartDataItem dataItemWithY:yValue];
    };

    // Line Chart #2
    NSArray * data02Array = @[@(arc4random() % 300), @(arc4random() % 300), @(arc4random() % 300), @(arc4random() % 300), @(arc4random() % 300), @(arc4random() % 300), @(arc4random() % 300)];
    PNLineChartData *data02 = [PNLineChartData new];
    data02.color = PNTwitterColor;
    data02.itemCount = data02Array.count;
    data02.inflexionPointStyle = PNLineChartPointStyleSquare;
    data02.getData = ^(NSUInteger index) {
        CGFloat yValue = [data02Array[index] floatValue];
        return [PNLineChartDataItem dataItemWithY:yValue];
    };

    [self.lineChart setXLabels:@[@"DEC 1",@"DEC 2",@"DEC 3",@"DEC 4",@"DEC 5",@"DEC 6",@"DEC 7"]];
    [self.lineChart updateChartData:@[data01, data02]];

}
else if ([self.title isEqualToString:@"Bar Chart"])
{
    [self.barChart setXLabels:@[@"Jan 1",@"Jan 2",@"Jan 3",@"Jan 4",@"Jan 5",@"Jan 6",@"Jan 7"]];
    [self.barChart updateChartData:@[@(arc4random() % 30),@(arc4random() % 30),@(arc4random() % 30),@(arc4random() % 30),@(arc4random() % 30),@(arc4random() % 30),@(arc4random() % 30)]];
}
else if ([self.title isEqualToString:@"Circle Chart"])
{
    [self.circleChart updateChartByCurrent:@(arc4random() % 100)];
}

Callback

#import "PNChart.h"

//For LineChart

lineChart.delegate = self;

Animation

Animation is enabled by default when drawing all charts. It can be disabled by setting displayAnimation = NO.

#import "PNChart.h"

//For LineChart

lineChart.displayAnimation = NO;
//For DelegateMethod


-(void)userClickedOnLineKeyPoint:(CGPoint)point lineIndex:(NSInteger)lineIndex pointIndex:(NSInteger)pointIndex{
    NSLog(@"Click Key on line %f, %f line index is %d and point index is %d",point.x, point.y,(int)lineIndex, (int)pointIndex);
}

-(void)userClickedOnLinePoint:(CGPoint)point lineIndex:(NSInteger)lineIndex{
    NSLog(@"Click on line %f, %f, line index is %d",point.x, point.y, (int)lineIndex);
}

License

This code is distributed under the terms and conditions of the MIT license.

SpecialThanks

@lexrus CocoaPods Spec ZhangHang Pie Chart MrWooj Scatter Chart

pnchart's People

Contributors

0mega avatar daliborfilus avatar dullgrass avatar dumoko avatar ecaselles avatar evertoncunha avatar farshidce avatar filmhomage avatar irshadpc avatar jackyzonewen avatar jdev7 avatar junsiongu avatar kevinzhow avatar klauslanza avatar leii avatar mariusciocanel avatar moflo avatar mps avatar mr-yo avatar mrwooj avatar noreaster76 avatar onevcat avatar pedrovieira avatar pj4533 avatar pkclsoft avatar rochefort avatar roczhang9673 avatar sanandrea avatar viktorasl avatar zhanghang 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  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

pnchart's Issues

Fix PNBarChart subviews multiplying

Steps:

  1. Create a PNBarChart.
  2. Have a system in the VC that will update the data in PNBarChart (send a request, get new data)
  3. reload PNBarChart.

As a result, -strokeChart method will add new PNBar each time the method is called, without removing the old ones. Same with -setXLabels:.

Please find attached a sample project that easily reproduces the bug.
There is a NSLog confirming that the quantity of the subviews is growing.
It's worth mentioning that only after 4-5 reloads the UI starts to lag considerably.

https://drive.google.com/file/d/0B_TCYXSphb04bkt4N3hKVGJKU0E/edit?usp=sharing

PNBarChart's yLables is not work like the property's name

I think the PNBarChart's yLables should work like xLabels in Ordinate, but there are nothing show in Ordinate when I setted yLables any values.

I check the code, and in PNBarChart.m, the method setYLabels: is only to find the max value of y.

Not able to run code

Hi,

i had download demo but not able to download libpods.a file

getting errors for podfile.lock as well

Incorrect values for Barchart

When using the barchart the values are not correct. I'm using two bars with 22 and 1.
I've setup the labels from the linechart on this one, and the bar with the value 1, seems to be 3 or maybe 4. And if i change the width of the bars this value keeps changing too

Static x values if y values at index are null?

For PNBarChart and PNLineChart, the x axis values expand dynamically based on the array length. Is there a way to keep the x values static even though some of the y at index are null?

For example: Say I wanted the x values to be the days of the week (Mon - Sun) and they are static. But today is Tuesday and I only have y values for Mon & Tue. Because the for the rest of the days (Wed - Sun) the y values are null, the chart will crash. I can create the logic to dynamically add 0 for each day left in the array, but this approach is not very scalable. PNLineChart will also draw a line through the 0 values, which is also not ideal.

Do you have any advice here? BTW, terrific job with this library.

UICountingLabel is not properly attributed

Hey there,

Not to nitpick, but I noticed that the UICountingLabel that is included is in a 'ThirdPart' (meaning "Third Party", I'd imagine) directory... Looking into this a bit further, it appears that the LICENSE file from that other library is not included along with the header/implementation file.

I think this is likely a simple oversight -- most developers include copyright information at the top of each .h/.m file -- and would likely be as simple as including the LICENSE file from the original repository.

Cheers!

yValueMin property

We need a value where Y should begin.

If you have 5 values between 80 and 81, you just get a straight line. The proper way would be to set:

yValueMin = 80
yValueMax = 81

and you would get a much better looking line.

Line chart issue and suggestion

If I have Y values greater than 999, labels get messed up. I've changed labels.widht to 25 but than in PNChartLabel, and that sorts problem.

For larger quantity (i have 30) of yValues stroke line gets under yLabels.

[IMG]http://i39.tinypic.com/5ovw4y.png[/IMG]

Sugg: I'm finnishing app for gold & silver prices. Gold varies from 1200 to 1500, and silver from 19 to 20 $ roughly. In gold I have no need for values under 1200, and in silver under 19 $. In fact this makes line chart hard to "read".
It would be great if you could implement lowest yValue from array of values.

Regards!

Keep up the good work!

Adding in all the charts to the app?

Hi just downloaded and clicked the project and it only has the line view. How do I add all other charts to the other views?

Or have I just totally missed it being a newbie on here.

Thanks for sharing!!!

Multiple Lines on a Line Graph?

It would be awesome if there could be an option for more than 1 line on a line graph! This would really make this project amazing!

Same with bar charts!

sample

PNPieChart - Both Percentage and Description?

Is there a way to have the PNPieChart show both Percentage and Description?

I have tried below code but does not do the job, the 20% never shows up.

[PNPieChartDataItem dataItemWithValue:20 color:PNFreshGreen description:@"WWDC \n20%"]

Thanks for a great control.

Adding the ability to highlight a bar in PNBarChart

as per #49, we can detect touches on bars, I'm using this delegate to display details about the bar's value, but I think it needs highlighting the bar to show which bar we are talking about. I wish there was a way to change a Bar's appearance after it gets laid out.

Context issues...

Seeing lots of these errors in Xcode 5.01

: CGContextSaveGState: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid context and is thereby contributing to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update.

Autolayout support

Hello - I'm trying to get PNLineChart to work with autolayout. The problem seems to be that certain size characteristics are frozen when the PNLineChart is instantiated. When the view is resized, it will not adapt. Can you please review a small update I made to PNLineChart? Based on some tests, this seems to work.

- (void) layoutSubviews
{
    [super layoutSubviews];

    if (_chartData){
       _chartCavanWidth = self.frame.size.width - _chartMargin * 2;
       _chartCavanHeight = self.frame.size.height - _chartMargin * 2;

       if (_showLabel) {
           _xLabelWidth = _chartCavanWidth / [_xLabels count];
       }
       else{
           _xLabelWidth = (self.frame.size.width) / [_xLabels count];
       }

       for (UIView *v in [self subviews]){
           if ([v isKindOfClass: PNChartLabel.class]){
               [v removeFromSuperview];
           }
       }

       [self setYLabels:_yLabels];
       [self setXLabels:_xLabels];

       [self strokeChart];
    }
}`

UICountingLabel is not behaving like a dependency

Hello. I have both PNChart and UICountingLabel in my Podfile, and when installing, the PNChart library automatically links the UICountingLabel without considering the fact that I already have it.

建议

当数据相差较大时显示效果不好。
建议在数据相差较大时求出中分值,大数据的表示中间以断层连接。

Easier Customization Options?

It would be really cool if you could implement an easier way to customize line / bar / circle strokes, and animation durations, without having to go into the actual PNChart files.

Something like:

PNLineChartData *lineChartOne = [PNLineChartData new];
lineChartOne.color = PNFreshGreen;
lineChartOne.itemCount = lineChart.xLabels.count;

    //ABILITY TO CUSTOMIZE STROKE SIZE & OTHER THINGS
    lineChartOne.strokeSize = 6.0f;
    lineChartOne.animationDuration = 2.0f;

X and Y label colors

Am I missing something or is there no way to change the x and y label colors? the dark grey doesn't work so well on darker backgrounds.

Besides that this framework rocks, thanks!

Xcode 6 Beta 4 warning

PNPieChartDataItem description property is mixing up with NSObject description.

At compilation time just a warning

PNPieChartDataItem.h:22:43: Auto property synthesis will not synthesize property 'description' because it is 'readwrite' but it will be synthesized 'readonly' via another property

But at runtime is an error

2014-07-23 21:40:07.556 BudgetPal[881:293445] -[PNPieChartDataItem setDescription:]: unrecognized selector sent to instance 0x17842ac60
2014-07-23 21:40:07.559 BudgetPal[881:293445] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[PNPieChartDataItem setDescription:]

Changing the property name solves it.

Error Running Code

I did everything as instructed(edited pod file, did pod install), but I'm getting this error running your demo code:
ld: library not found for -lPods
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Log:

Ld /Users/henrykatz/Library/Developer/Xcode/DerivedData/PNChartDemo-hjfbbjwccfkwwngvtswkbyoqjmoi/Build/Products/Debug-iphonesimulator/PNChartDemo.app/PNChartDemo normal i386
cd /Users/henrykatz/Downloads/PNChart-master
export IPHONEOS_DEPLOYMENT_TARGET=6.0
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk -L/Users/henrykatz/Library/Developer/Xcode/DerivedData/PNChartDemo-hjfbbjwccfkwwngvtswkbyoqjmoi/Build/Products/Debug-iphonesimulator -F/Users/henrykatz/Library/Developer/Xcode/DerivedData/PNChartDemo-hjfbbjwccfkwwngvtswkbyoqjmoi/Build/Products/Debug-iphonesimulator -filelist /Users/henrykatz/Library/Developer/Xcode/DerivedData/PNChartDemo-hjfbbjwccfkwwngvtswkbyoqjmoi/Build/Intermediates/PNChartDemo.build/Debug-iphonesimulator/PNChartDemo.build/Objects-normal/i386/PNChartDemo.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -ObjC -framework CoreGraphics -framework Foundation -framework QuartzCore -framework UIKit -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=6.0 -framework QuartzCore -framework CoreGraphics -framework UIKit -framework Foundation -lPods -Xlinker -dependency_info -Xlinker /Users/henrykatz/Library/Developer/Xcode/DerivedData/PNChartDemo-hjfbbjwccfkwwngvtswkbyoqjmoi/Build/Intermediates/PNChartDemo.build/Debug-iphonesimulator/PNChartDemo.build/Objects-normal/i386/PNChartDemo_dependency_info.dat -o /Users/henrykatz/Library/Developer/Xcode/DerivedData/PNChartDemo-hjfbbjwccfkwwngvtswkbyoqjmoi/Build/Products/Debug-iphonesimulator/PNChartDemo.app/PNChartDemo

yLabels position

I'm not sure why, but in may BarChar, yLabels appear inside the chart (which is not good).
I had to change the implementation and add some negative values so that the labels be replaced outside chart, any thoughts?

_gradeLabel overlapping with previous value

Hi,
I am having problem when I use PNCircleChart.Simply loading view controller is okay and adding new value and reloading ViewController again " AnyNumber% " label overlapping with previous value.
Regards

size of chart

i have a chart but the problem is that i need more space in my chart
how can I add a scroll to x-axis
thanks a lot

PNLineChartData.h & PNLineChartDataItem.h not included in PNChart.h

correct me if i'm wrong but your example of a line chart won't work until you manually import PNLineChartData.h & PNLineChartDataItem.h.

is it possible to but them also in PNChart.h? because you can't use the PNLineChart if you don't import PNLineChartData.h & PNLineChartDataItem.h.

Wrong pod?

Hi, when install PNChart via Cocoapods (pod 'PNChart', '~> 0.3.3'), i don't have the ability for PNCircleChart to go clockwise (i think that i've got an older version)
When i download the zip file, i've got this feature.
What's wrong ?

thanks

Crashing when all values are the same (Line Chart)

If you try something like this:
NSArray * dataArray = @[@60, @60, @60, @60, @60, @60, @60, @60];

You will get a crash with the error below:
Assertion failed: (CGFloatIsValid(x) && CGFloatIsValid(y)), function void CGPathAddLineToPoint(CGMutablePathRef, const CGAffineTransform *, CGFloat, CGFloat), file Paths/CGPath.cc, line 224

Multi Line Chart with different number of x labels

Is there a way to have Multiple Lines Chart where each line will have different number of x labels. Currently this causes it to crash.

For example Line 1 has 20 x labels but Line 2 has only 10 x labels points.

Any suggestions are appreciated.

lag between circle and gradelabel

in the v0.3.2, i noticed a lag between circle stroke and gradelabel appearance when placing circle chart into tableview. How can i force the gradelabel load at the same as the circle?

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.