Git Product home page Git Product logo

victory's Introduction

Victory โ€” Formidable, We build the modern web an ecosystem of composable React components for building interactive data visualizations.

weekly downloads current version build status Maintenance Status

Victory

Contents

Getting started

  1. Add Victory to your project:
# npm
$ npm i --save victory
# or yarn
$ yarn add victory
  1. Add your first Victory component:
import React from "react";
import { render } from "react-dom";
import { VictoryPie } from "victory";

const PieChart = () => {
  return <VictoryPie />;
};

render(<PieChart />, document.getElementById("app"));
  1. VictoryPie component will be rendered, and you should see:

pie


Requirements

Projects using Victory should also depend on React. As of [email protected] Victory requires React version 16.3.0 or above

Victory Native

Victory Native shares most of its code with Victory, and has a nearly identical API! To learn more, check out the Victory Native package README.

Contributing

Please see the Contributing guide.

Maintenance Status

Active: Formidable is actively working on this project, and we expect to continue to work for the foreseeable future. Bug reports, feature requests and pull requests are welcome.

victory's People

Contributors

angelanicholas avatar boygirl avatar carbonrobot avatar chilijung avatar chrisbolin avatar coopy avatar dandelany avatar david-davidson avatar dependabot[bot] avatar derekmaffett avatar divmain avatar ebrillhart avatar exogen avatar gksander avatar heythisispaul avatar imranolas avatar jhumbug avatar kenanyusuf avatar kenwheeler avatar knowbody avatar ljones87 avatar maddles avatar ngoknows avatar paulathevalley avatar ramenhog avatar ryan-roemer avatar scottrippey avatar stefvhuynh avatar victory-ci avatar wsparsons 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

victory's Issues

Update / Polish Docs

  • victory-chart
  • victory-axis
  • victory-bar
  • victory-scatter
  • victory-line
  • victory-pie
  • victory-label
  • main victory repo

victory-chart

Ross has been working on this component, and will probably continue. I'm assigning it to myself since he has le full time other job.

Test coverage

Begin testing components now that the api is more settled

Distinguish independent variable / independent variable from x / y

Currently we are conflating / enforcing the convention of the independent variable being represented in the x-coordinate space, and the dependent variable in y coordinate space. This assumption breaks down for things like horizontal bar graphs. How should this relationship be configured? Does this change our x / y data format?

refactor chart

Chart is too monolithic. Styles applied to child components are especially problematic. Make the child-parent relationship explicit by giving the user direct compositional control over the children i.e.

<VictoryChart props...>
  <VictoryAxis props... /> // optional, chart has a default
  <VictoryAxis props... /> // optional, chart has a default
  <VictoryLine props... />
</VictoryChart>

Here chart just acts as a coordinator between child components, synching up the domain / range / tickValues etc. based on the data and other props of the children

Second blog post

  • animation model
  • design philosophy
  • advantages
  • comonetization
  • DOM model
  • component lifecycle

I landed on this nifty little repo with nothing in it but a few thoughts jotted down in an MD file and I like it

So I think perhaps maybe I would like to be involved in this project. But I think maybe also that I don't know SH about D3's nuts and bolts.

Perhaps someone can hold my hand as I ask some silly questions and pose some silly prollems.

One thing I think I know about what makes D3 special is that it is meticulously designed to deal with a ton of interlinking data and any associations that come along with it, and what I have heard on the street is they utilize the DOM to accomplish this with amazing efficiency. This is said to be achieved because the DOM is structurally perfectly suited for this task.

That said, I intuit that the nature of deeply nested data structures that the DOM is so suited for, can be replaced with a plain old JS built data structure that models the desired DOM behaviors without all the cruft that comes along with it.

As I understand it, the above mentioned model has already been implemented in what is called the "Virtual DOM" which react employs in order to accomplish the very same goal. Do we (you) already know for fact that the VDOM encompasses everything necessary to implement D3's DOM dependent functionality? I assume so...

1.) If this is so, how difficult would it be to adapt D3's infrastructure to utilize the VDOM in the same way it would the DOM? I assume (probably incorrectly) that this wouldn't be such a big deal per se.

2.) I assume from the bits I read in DESIGN.MD that this project intends to keep SVG as the core rendering technology. If so, does SVG not also utilize the DOM, which would make cutting the DOM out an impossibility?

Perhaps I misunderstood and SVG is not the intended rendering tech for this proj. Please clarify this point so I don't continue down a train of thought which is misguided (and useless to all).

I would be very intrigued by a project that cuts out the DOM and is render agnostic. Leaving the option open for those who need/want to use SVG.

3.) Do most browsers utilize hardware acceleration in the SVG render chain?

Of the ~25,000 or so projects I have reviewed over the past couple years, I have not run into many as capable or performant as D3. I actually only recall one project that seemed to encompass the core of what D3 accomplishes, and if I recall correctly it was render agnostic and modular. I can't seem to remember the name of it at the moment, but I will hunt it down and get back to you on that. It seemed very robust, and the rendering was definitely much higher in performance than what I have experienced with similar D3 charts. The author of this charting library was a very young (early 20's) MIT student (I think) - he had a definite focus on performance and provided a detailed benchmark comparison of all the top charting libs providing similar functionality.

figure out an update and release system for components

It should:

  • check for version updates to the package.json either with something like npm-check-updates or by matching to the top-level victory repo package.json
  • bump and commit each component version, and publish the new version to the npm registry
  • top level victory repo should depend on other victory components at "latest"
  • run from one place and update all the components

victory-tree

  • consider rescaling svg when gets to certain size
  • either the visualization should resize or stay the same with scroll / drag / panning

Main repo readme

should contain:

  • list of components
  • links to what we have
  • rough status
  • what is planned

new component publishing guide

format, code style, api compliance, visual style, documentation, npm module, concurrent PR into component playground source

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.