GithubHelp home page GithubHelp logo

riatelab / cartography Goto Github PK

View Code? Open in Web Editor NEW
391.0 25.0 46.0 111.52 MB

Thematic Cartography for R

Home Page: http://riatelab.github.io/cartography/docs/

R 99.06% C++ 0.74% C 0.20%
cartography map r-package thematic-maps

cartography's Introduction

cartography

R-CMD-check Codecov test coverage DOI

Consider mapsf

There are no plans for new features or enhancements in cartography. Basic maintenance and support will continue indefinitely. Existing projects that use cartography can safely continue to use cartography. The mapsf R package is the successor of cartography and it is friendlier, lighter and more robust. See mapsf vignette or this blog post to migrate from cartography to mapsf.

Create and integrate maps in your R workflow!

This package helps to design cartographic representations such as proportional symbols, choropleth, typology, flows or discontinuities maps. It also offers several features that improve the graphic presentation of maps, for instance, map palettes, layout elements (scale, north arrow, title...), labels or legends.

Demo

The following script creates a map of symbols that are proportional to values of a first variable and colored to reflect the classification of a second variable.

library(sf)
library(cartography)
# path to the geopackage file embedded in cartography
path_to_file <- system.file("gpkg/mtq.gpkg", package="cartography")
# import to an sf object
mtq <- st_read(dsn = path_to_file, quiet = TRUE)

########## Draft Map
# Plot the municipalities
plot(st_geometry(mtq))
# Plot symbols with choropleth coloration (population & median income)
propSymbolsChoroLayer(x = mtq, var = "POP", var2 = "MED")
# Add a layout
title(main = "Population & Wealth in Martinique, 2015", 
      sub = "Sources: Insee and IGN - 2018")

########## Final Map
# Set figure margins
opar <- par(mar = c(0,0,1.2,0))
# Plot the municipalities
plot(st_geometry(mtq), col="darkseagreen3", border="darkseagreen4",  
     bg = "lightblue1", lwd = 0.5)
# Plot symbols with choropleth coloration
propSymbolsChoroLayer(x = mtq, var = "POP", inches = 0.4, border = "grey50",
                      lwd = 1, legend.var.pos = "topright", 
                      legend.var.title.txt = "Population",
                      var2 = "MED", method = "equal", nclass = 4, 
                      col = carto.pal(pal1 = "sand.pal", n1 = 4),
                      legend.var2.values.rnd = -2,  legend.var2.pos = "left", 
                      legend.var2.title.txt = "Median Income\n(in euros)") 
# Plot a layout
layoutLayer(title="Population & Wealth in Martinique, 2015", 
            author = "cartography 2.1.3", 
            sources = "Sources: Insee and IGN - 2018", 
            scale = 5, tabtitle = TRUE, frame = FALSE)
# Plot a north arrow
north(pos = "topleft")
# restore graphics parameters
par(opar)

Installation

  • Development version on GitHub
remotes::install_github("riatelab/cartography")
  • Stable version on CRAN
install.packages("cartography")

Alternatives

Community Guidelines

One can contribute to the package through pull requests and report issues or ask questions here.


To cite package cartography in publications use one of these:

cartography's People

Contributors

alfcrisci avatar arthurgailes avatar dieghernan avatar mbunel avatar rcarto avatar rcura avatar rsbivand avatar xiangyunhuang 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

cartography's Issues

transparency

I could not find the option of adjust the transparency level on all colors! Is it possible to add the option transparency when you plot with colors (I did not find).
regards
Byman

nclass problem with chorolayer

Hi,
first thanks a lot for the great package!
I've just got a problem when using choroLayer with nclass=6 and method="sd".
Wouldn't get the number of classes I've asked for. Any idea why?
Thanks a lot!

North/South Arrows not displayed

In the vignette of the current CRAN version, for exemple the choropleth map, the south arrow is not displayed, although it should with the use of south = TRUE (see code below)

layoutLayer(title = "Demographic Trends", author = "cartography", 
            sources = "Eurostat, 2008", frame = TRUE, col = NA, 
            scale = NULL,coltitle = "black",
            south = TRUE) # add a south arrow

Legend not reflecting breaks when breaks have decimals?

Thank you so much for your wonderful package! I am really enjoying the package so far.

I had one quick question regarding legends. If you see my screenshot, I have set 6 manual breaks, but they are not reflected in the legend. Is there something missing in my code?

#add choropleth layer
choroLayer(
  x = usa, 
  var = "one",
  method = "geom",
  breaks = c(0, 0.2, 0.4, 0.6, 0.8, 1),
  nclass= 7,
  col = carto.pal(pal1 = "blue.pal", n1 = 7),
  border = "white", 
  lwd = 0.001,
  legend.pos = "bottomright", 
  legend.title.txt = "Test name",
  add = TRUE
)

)

Could other symbols be used in propSymbolsChoroLayer() ?

Hello, it would be nice to have symbols like triangleTop and triangleBottom (or circles) in propSymbolsChoroLayer().
In this way, printing two layers, one could use also the colour of the triangles - and not just the size, as in propTrianglesLayer() - as the measure of a further dimension.
It would also make propTrianglesLayer() redundant.

A more general approach would be to print circles with two further parameters: the initial angle and the arc angle: in this way one could, using repeated calls to this method, compose a "cake" in each polygon where the size and/or the colour of each slice would come from a different variable.

Cheers !

histogram legend

Hi everybody,

first of all, I like your package very much and I'm using it for cartography purpose for while. However, I saw a nice feature in the tmap package, I hope to realize with cartography. In tmap one is able to plot a histogram (tm_fill(..., legend.hist = TRUE)) to the corresponding legend for a choropleth map (e.g. https://workshop.mhermans.net/thematic-maps-r/04_plot.html). Is it possible to do this with cartography?

add a default behavior for df param

If var is in spdf and df is missing add a default behavior to set df to spdf@data.
Apply to all relevant functions. (suggestion Rémy Drouilhet)

Add legend.nodata.col to typoLayer()

Hello,

Would it be possible to add a legend.nodata.col parameter to the typoLayer() function to be able to have another color than white?

Thank you.

Pierre-Yves

Legend Text in choroLayer

Hi,

You have a color pallet for qualitative variables, but there seems there is no way to display the correct categorical variable names in the legend? I.e., I can recode to quantitative for the mapping, but no way to reflect real text values in legend. Is this a limitation or am I missing a parameter somewhere?

labelLayer w/ x=SpatialPointsDataFrame

Error in UseMethod("st_centroid") :
pas de méthode pour 'st_centroid' applicable pour un objet de classe "c('SpatialPointsDataFrame', 'SpatialPoints', 'Spatial', 'SpatialPointsNULL', 'SpatialVector')"

LabelLayer : possibilité de mettre une couleur de fond

Bonjour,

Déjà un grand merci pour votre travail, votre package est vraiment très utile et facile d'accès.

J'aurais une question concernant la fonction labelLayer. Est-il possible lors de l'affichage de faire apparaître un halo ou une couleur de fond derrière les caractères affichés ? Si ce n'est pas le cas, est-ce que cela est envisagé dans une version future de la fonction ?

En vous remerciant par avance pour votre réponse,
Cordialement,
Baptiste MARTIN

layoutLayer : title, source & author mngmt

  • manage no source or no author (if one is missing => only one line)
  • change default behavior for source, author => display nothing by default
  • no title => no banner
  • horiz=TRUE => bottomleft horizontal, horiz = FALSE bottom right vertical for source and author display
  • scale position (left, right)
  • scale: "auto" => automatic size, 0 or FALSE => no scale, >0 => scale

color gradient for gradLinkLayer (feature proposal)

Using a simple workaround, I have added color gradient support to gradLinkLayer function. You may want to consider adding this feature to the package.

Here are the changes I have made:

In gradLinkLayer:

plot(sf::st_geometry(link), 
       col = if(length(col) > 1){col[as.factor(lwdMap)]}else{col},
       lwd = lwdMap, add = add)

In legendGradLines:

segments(xref, yref + height/2 + i * height + i * delta2 + 
                (height + delta2)/2, xref + width, yref + i * height + 
                 i * delta2 + height/2 + (height + delta2)/2, lwd = lwd[j], 
                 col = ifelse(length(col > 1), col[j], col),
                 lend = 1)

Example of output

library(sp)
data("nuts2006")
# Create a link layer
twincities.sf <- getLinkLayer(x = nuts2.spdf, df = twincities.df[,1:2])

Initial function

figdim <- getFigDim(x = districtsShp, width = 800, mar = c(0,0,1.2,0), res = 100)
cols <- c('#edf8fb','#b3cde3','#8c96c6','#8856a7','#810f7c')

# set figure margins
par(mar = c(0,0,1.2,0))
# Plot the links - Twin cities agreements between regions 
plot(nuts0.spdf, col = "grey60",border = "grey20")
gradLinkLayer(x = twincities.sf, df = twincities.df,
              legend.pos = "topright",
              var = "fij", breaks = c(2,5,15,20,30), lwd = c(0.1,1,4,10),
              col = "#92000090", add = TRUE)

rplot06

Modified function

figdim <- getFigDim(x = districtsShp, width = 800, mar = c(0,0,1.2,0), res = 100)
cols <- c('#edf8fb','#b3cde3','#8c96c6','#8856a7','#810f7c')
# set figure margins
par(mar = c(0,0,1.2,0))
# Plot the links - Twin cities agreements between regions 
plot(nuts0.spdf, col = "grey60",border = "grey20")
gradLinkLayer_modif(x = twincities.sf, df = twincities.df,
              legend.pos = "topright",
              var = "fij", breaks = c(2,5,15,20,30), lwd = c(0.1,1,4,10),
              col = c('#ffffb2','#fecc5c','#fd8d3c','#e31a1c'), add = TRUE)

rplot05

Rgui et getGridLayer : erreur

Bonsoir,

Sous Windows 10, R version 3.3.2patched, dans l'environnement Rgui, j'ai une erreur
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘spChFIDs’ for signature ‘"SpatialPolygonsDataFrame", "integer"’
En environnement "Rscript.exe", je n'ai pas d'erreur.

La partie significative de mon script
library(sp)
library(rgdal)
library(rgeos)
library(cartography)
varDir <- sprintf("%s/bvi35/CouchesVilaineAval", Drive);
dsn <- sprintf("%s/Nord.shp", varDir)
layer <- ogrListLayers(dsn)
spdf <- readOGR(dsn, layer=layer, stringsAsFactors=FALSE)
spdf <- spTransform(spdf, CRS("+init=epsg:2154"))
grille <- getGridLayer(spdf=spdf,cellsize = 1000)

J'avais ce même comportement en R version 3.3.1.

Dans le mode Rgui, la commande "names()" fonctionne de manière différente, c'est peut-être une piste ?

Et merci pour votre package qui est super pratique !

OSM tiles

Consider using rosm package instead of OpenStreetMap package for raster tile plotting. (because of rjava intallation, and time needed to download the tiles )

Show more than one variable for each nut region

Is it possible to represent three variables as three bars for each nuts region in Europe? the example is only with one variable but I would like to have three at the same time with three different bars.
Thanks,

getBorders

the spdf needs to be projected
Error in RGEOSBinTopoFunc(spgeom1, spgeom2, byid, id, drop_lower_td, unaryUnion_if_byid_false, :
TopologyException: Input geom 0 is invalid: Self-intersection at or near point (..........)
In addition: Warning message:
In rgeos::gBuffer(spdf, byid = TRUE, width = distance, quadsegs = 1, :
Spatial object is not projected; GEOS expects planar coordinates

getGridLayer : alignement des côtés des mailles

Je viens d'utiliser cette fonction pour générer une grille au pas de 1000 mètres.
Les coordonnées du centre des mailles sont en multiple de 1000, ce qui fait que les côtés sont décalés de 500 mètres.
Je voudrais obtenier un maillage standard Lambert93 avec les côtés en multple de 1000.
J'ai recopié la fonction getGridLayer, pour faire cette modification
boxCoordX <- seq(from = boundingBox[1,1]-500, to = boundingBox[1,2]+500, by = cellsize)
boxCoordY <- seq(from = boundingBox[2,1]-500, to = boundingBox[2,2]+500, by = cellsize)
mais j'ai une erreur avant ces instructions
Error in names(spdf@data) : argument inutilisé spdf@data)

Je suis en Windows10/R 3.2.2/cartography 1.1

Et sinon un grand merci pour ce package qui facilite beaucoup de traitements

CRS issues

The getGridLayer example now fails with PROJ 6.1.0 on st_crs(x) == st_crs(y) with current sf (@edzer) and:

> mygrid <- getGridLayer(x = mtq, cellsize = 3e7, type = "hexagonal", var = "POP")
Error in st_geos_binop("intersects", x, y, sparse = sparse, prepared = prepared) : 
  st_crs(x) == st_crs(y) is not TRUE
> sf_extSoftVersion()
          GEOS           GDAL         proj.4 GDAL_with_GEOS 
       "3.7.2"        "3.0.0"        "6.1.0"         "true" 
> debug(getGridLayer)
...
Browse[2]> st_crs(x)
Coordinate Reference System:
  EPSG: 32620 
  proj4string: "+proj=utm +zone=20 +datum=WGS84 +units=m +no_defs"
...
Browse[2]> st_crs(grid)
Coordinate Reference System:
  EPSG: 32620 
  proj4string: "+proj=utm +zone=20 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"
Browse[2]> 
Error in st_geos_binop("intersects", x, y, sparse = sparse, prepared = prepared) : 
  st_crs(x) == st_crs(y) is not TRUE
>

using 'custom' colors?

Hello again!

Quick question! Is it possible to use custom color gradients?

For example, is it possible to set the lowest value as "white" and highest value as "dodgerblue4"?

I saw the post about using hex colors but did not have luck...

Identical symbol classes in `propSymbolsLayer` for two different maps

Thanks for this awesome package.

I am wondering if there is a way to get identical symbol classes (and legend) using propSymbolsLayer with the aim of comparing two maps. Using fixmax does not help (see the maps below; breaks and number of symbols change depending on the range of the input variable).

Ideally, it would also be nice if it was possible to set the symbol breaks as it is the case for ChoroLayer.
I think it should be easy to implement in the propSymbolsLayer function (need a bit of time to look at it).

#################
# First map
#################
library(sf)
mtq <- st_read(system.file("shape/martinique.shp", package="cartography"))

# Countries plot
plot(st_geometry(mtq), col = "lightblue4",border = "lightblue3", bg = "lightblue1")
# Population plot on proportional symbols
propSymbolsLayer(x = mtq, var = "P13_POP", 
                 symbols = "circle", col =  "white",
                 fixmax = 85000,
                 legend.pos = "right", border = "grey",
                 legend.title.txt = "Total\npopulation (2013)",
                 legend.style = "c")
# Layout plot
layoutLayer(title = "Population in Martinique",
            sources = "INSEE, 2016", theme = "blue.pal",
            scale = NULL, frame = FALSE)

rplot04

#################
# Second map
#################

mtq$P13_POP <- mtq$P13_POP - 5000

# Countries plot
plot(st_geometry(mtq), col = "lightblue4",border = "lightblue3", bg = "lightblue1")
# Population plot on proportional symbols
propSymbolsLayer(x = mtq, var = "P13_POP", 
                 symbols = "circle", col =  "white",
                 fixmax = 85000,
                 legend.pos = "right", border = "grey",
                 legend.title.txt = "Total\npopulation (2013)",
                 legend.style = "c")
# Layout plot
layoutLayer(title = "Population in Martinique",
            sources = "INSEE, 2016", theme = "blue.pal",
            scale = NULL, frame = FALSE)

rplot03

Add size to LayoutLayer

Congrats for your work.
It is possible to add size for title and source in LayoutLayer ?

Thank you in advance.

propTrianglesLayer : légende incorrecte

D'abord félicitations pour cette nouvelle version du package.

La légende n'est pas très lisible et comporte des erreurs entre la taille du triangle et la valeur.

image

Voici le code de test

  library(sp)
  library(sf)
  library(raster)
  library(cartography)
  xmin <- 30000
  xmax <- 33000
  ymin <- 30000
  ymax <- 33000

  sp <- as(extent(xmin, xmax, ymin, ymax), "SpatialPolygons")
# en Lambert 93
  proj4string(sp) <- CRS("+init=epsg:2154")
  spdf <- SpatialPolygonsDataFrame(sp, data.frame(ID=1:length(sp)))
# Création d'une grille régulière
  x <- sf::st_as_sf(spdf)
  grille.sf <- st_make_grid(x , 1000)
# nombre de mailles
  nb <- length(grille.sp)
# conversion en spdf
  grille.sp <- as(grille.sf, "Spatial")
  grille.spdf <- SpatialPolygonsDataFrame(grille.sp, data.frame(ID=1:nb, a=sample(1:100, nb, replace=T), b=sample(1:100, nb, replace=T), row.names=row.names(grille.sp)))
  print(grille.spdf@data)
  propTrianglesLayer(spdf=grille.spdf, var1="a", var2="b", add=FALSE)

Error with the PropSymbolsLayer function

Good morning,

When I use the PropSymbolsLayer function with the spdf and df parameters (instead of x parameter), I obtain the following error code :

Error: In ‘udunits_from_proj[x$units]’, ‘udunits_from_proj’ and ‘x’ are not recognized by udunits.
See a table of valid unit symbols and names with valid_udunits().
Add custom user-defined units with install_symbolic_unit().

By the way, the corresponding code in the R documentation Platform does not work in my laptop :

Example 2

data("nuts2006")

Countries plot

plot(nuts0.spdf, col = "grey60",border = "grey20")

Population plot on proportional symbols

propSymbolsLayer(spdf = nuts0.spdf, df = nuts0.df,
var = "gdppps2008",
symbols = "bar", col = "#B00EF0",
legend.pos = "right",
legend.title.txt = "GDP\nin Millions PPS (2008)",
legend.style = "e")

I got the same error message.

Is someone can help me?
Thanks a lot.

Kevin

getGridLayer : une question, comment conserver des mailles entières

Bonjour,

Je veux produire une grille "Lambert" avec des mailles entières.
En modifiant getGridSquare, j'arrive bien à ce que les mailles soient alignées sur le quadrillage Lambert.
boundingBox[,1] <- boundingBox[,1] - rounder[,1] - cellsize/2 boundingBox[,2] <- boundingBox[,2] - rounder[,2] + cellsize + cellsize/2
Par contre je ne trouve pas comment enlever l'intersection des mailles.

Je voudrais mettre un nom de maille du type E9999N9999, la partie numérique dépendant du coin en bas à gauche. Cela est-il possible ?

Plot pie chart

Hi , I was trying to use your awesome package to pie charts with county map. IS there a way instead draw bubbles to draw the pie chart?

NUTS 2 Version 2006 and 2013 incompatible?

Hi,
we are using the cartography package to look at different variables of interest across Europe. We take the data for our variables from EUROSTAT via the eurostat package where they use the latest NUTS2 version which is from 2013. As the NUTS 2 data in your package is from 2006 we face the following problem: some NUTS2 regions in Italy, Finland and Germany cannot be displayed because they got renamed (Map): emprt_16_map.pdf

Our script to plot the map looks like this:

BIP <- get_eurostat("nama_10r_2gdp", time_format = "raw")
data(nuts2006)
opar <- par(mar = c(0,0,0,0))

nuts_2 <- nuts2.df$id
mapdata <- filter(BIP, unit == "PPS_HAB", time == max(time), geo %in% c(nuts_2))
mapdata <- select(mapdata, geo, values)
names(mapdata)[1] <- "id"

Merge nuts and bip

nuts2.df <- merge(nuts2.df, mapdata, by="id")

cols <- c("#d7191c","#fdae61","#ededad","#a6d96a","#1a9641")

Plot a layer with the extent of the EU28 countries with only a background color

plot(nuts0.spdf, border = NA, col = NA, bg = "#A6CAE0")

Plot non european space

plot(world.spdf, col = "#F9F9F7", border=NA, add=TRUE)

Plot the bip

choroLayer(spdf = nuts2.spdf, # SpatialPolygonsDataFrame of the regions
df = nuts2.df, # data frame with bip
var = "values", # bip field in df
nclass = 5,
method = "quantile",
col = cols, # colors
border = "grey40", # color of the polygons borders
lwd = 0.5, # width of the borders
legend.pos = "topright", # position of the legend
legend.title.txt = "BIP je\nEinwohner", # title of the legend
legend.values.rnd = 0, # number of decimal in the legend values
add = TRUE) # add the layer to the current plot

Plot a layer of countries borders

plot(nuts0.spdf,border = "grey20", lwd=0.75, add=TRUE)
plot(nuts2.spdf,border= "grey20", lwd=0.2, add=TRUE)

par(opar)

Do you have any suggestions how we could solve this problem? Did we miss an important setting?
We can solve the problem by renaming the "geo" variable but if there is a better way we would be glad.

Thanks for your help!

Bertin's style points regular grid

Hello, looking into the script generating the vignette map, i've found that it's possible to use the gridding functions to generate a regular-grid point map, Bertin-style.

Cf. my presentation here : http://www.uoh.fr/front/document/ee86e66d/cdbb/47df/ee86e66d-cdbb-47df-a13e-bf502c963b0a/UOHGEOprod/Module116/pages/s6/page2417.xml

I'm not a pro of R, but here is my little script, using the data from the package:

library(cartography)
data(nuts2006)

# Plot basemaps
plot(nuts0.spdf, border = NA, col = NA, bg = "#A6CAE0")
plot(world.spdf, col  = "#E3DEBF80", border=NA, add=TRUE)
plot(nuts0.spdf, border = "white", col = "#E3DEBF", lwd= 1.1, add=T)

# Compute the grid and its base values
mygrid <- getGridLayer(spdf = nuts0.spdf,cellsize = 50000)
datagrid.df <- getGridData(mygrid, nuts0.df, "pop2008", dfid=NULL)

# Compute the number of points in the polygons
np<-as.data.frame(table(mygrid$df$id_geo)

# Compute the value for each point of the grid

# Load dplyr to cross join the tables
library(dplyr)

# Compute the join between the grid and the list of point numbers by polygons
a <- inner_join(np, mygrid$df, by = c("Var1" = "id_geo"))

# Compute the join with the datagrid
c <- inner_join(a, datagrid.df)

# Compute the join with the data source
d<-inner_join(nuts0.df, c, by = c("id" = "Var1"))

# Calculate the value for each point of the grid (var / nb pts).
d$pop2008grid = d$pop2008.x / d$Freq

# Draw the map
propSymbolsLayer(spdf = mygrid$spdf, df = d, spdfid = "id", dfid = "id_cell", legend.pos = "n", border = "white", var = "pop2008grid", k=0.0001, col="darkblue", add=TRUE)

Thanks for your work, it'll be very useful for my students :)

propSymbolsLayer - Erreur de légende

Bonjour,
Tout d'abord merci pour votre travail.

J'ai un problème lorsque j'utilise des cartes avec la fonction propSymbolsLayer, la légende n'apparaît pas parfaitement : il y a décalage entre les cercles et les valeurs qui apparaissent à côté.
probleme legende

Savez-vous ce qui peut poser ce genre de problèmes ?

En vous remerciant par avance,
Cordialement,

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.