Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
4a43e63
basic horizontal bar chart
kingwang09 Mar 12, 2018
b75157d
horizontal chart add
kingwang09 Mar 22, 2018
4b6746f
임시 커밋
kingwang09 May 8, 2018
6224970
XAxis, YAxis 임시 구현
kingwang09 May 19, 2018
742269d
XAxis 계산로직 구현
kingwang09 May 19, 2018
442617a
지금까지 작업한 내용
kingwang09 Jul 12, 2018
b54d7f3
가이드라인 정상동작하도록 개선
Jul 19, 2018
cddf697
Merge branch 'release/0.0.24' into develop
oksktank Jul 29, 2018
79d1109
코드 EsLint 이슈 제거
hyungeunjin Aug 28, 2018
31c1304
horizontal chart tooltip 기능 구현
hyungeunjin Aug 29, 2018
2a6969c
window에서 사용하기 위하여 변경함
kingwang09 Aug 29, 2018
0207090
Tooltip position 조정
kingwang09 Aug 30, 2018
cccd94b
hbar chart first commit (layout, componentMount, etc...)
overpresentme Aug 31, 2018
0801236
Merge branch 'develop' of https://github.com/overpresentme/react-nati…
overpresentme Aug 31, 2018
2ed0361
Test용 border 코드 제거
kingwang09 Aug 31, 2018
2655609
Merge remote-tracking branch 'upstream/develop' into develop
overpresentme Sep 1, 2018
8592ccf
Merge pull request #52 from overpresentme/develop
oksktank Sep 1, 2018
561845c
Horizontal bar chart props width 개선, 툴팁 위치 수정
kingwang09 Sep 1, 2018
08a05a8
update build settings
oksktank Sep 1, 2018
eae587f
Merge branch 'feature/upgrade-expo-version' into develop
oksktank Sep 1, 2018
4481f07
update package.json
oksktank Sep 1, 2018
4f903ca
툴팁 표현 가로로 변경
kingwang09 Sep 1, 2018
4c9af42
horizontal chart tooltip 이슈 해결
kingwang09 Sep 2, 2018
c3bd7a0
Conflict 해결
hyungeunjin Sep 4, 2018
ec06aa9
horizontalchart position bugfix
hyungeunjin Sep 4, 2018
ab672d2
불필요한 소스 제거
hyungeunjin Sep 4, 2018
46204a6
default value 조정
hyungeunjin Sep 4, 2018
c91ee3d
Add prop for turning animation on/off
marciliocb Jan 28, 2020
0bf9eb5
Toggle animation for pie-charts
marciliocb Jan 28, 2020
aee4526
Merge branch 'fix-animated' into develop
marciliocb Apr 20, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 35 additions & 69 deletions examples/App.js
Original file line number Diff line number Diff line change
@@ -1,40 +1,26 @@
import React from 'react'
import { StyleSheet, Text, View, Button } from 'react-native'
import { StyleSheet, View, Button } from 'react-native'
import PureChart from './pure-chart'
import moment from 'moment'
export default class App extends React.Component {
constructor (props) {
super(props)
this.generateData = this.generateData.bind(this)
this.generateHData = this.generateHData.bind(this)
this.state = {
data: [],
pieData: [{label: '사람', value: 110, color: 'red'}, {label: '동물', value: 140, color: 'green'} ],
pieData2: [{value: 220700.26, color: 'red'}, { value: 140700.89, color: 'yellow'} ],
pieData3: [{value: 220}, { value: 140} ]
pieData: [ {label: '사람', value: 110, color: 'red'}, {label: '동물', value: 140, color: 'green'} ],
pieData2: [ {value: 220700.26, color: 'red'}, { value: 140700.89, color: 'yellow' } ],
pieData3: [ {value: 220}, { value: 140 } ]
}
}

// 파이차트 테스트 하기
/*
componentDidMount () {

this.test = 0
setInterval(() => {
if (this.test < 360) {
this.test++
this.setState({
pieData: [this.test, 360 - this.test]
})
}
}, 5)
}
*/

generateData () {
var data = [{x: '1', y: 300}, { x: '2', y: null }, { x: '2', y: null }, {x: '3', y: null}, {x: '4', y: 400}]
var data = []
var data2 = []
var data3 = []
var pieData = []
var data4 = []
var startDate = moment()
for (var i = 0; i < 10; i++) {
startDate.add(1, 'days')
Expand All @@ -56,6 +42,12 @@ export default class App extends React.Component {
y: Math.round(Math.random() * 1000)
}
)
data4.push(
{
x: startDate.format('YYYY-MM-DD'),
y: Math.round(Math.random() * 300)
}
)
}

for (let i = 0; i < 5; i++) {
Expand All @@ -65,62 +57,36 @@ export default class App extends React.Component {
})
}

// this.setState({data: [
// {seriesName: 'test', data: data, color: '#ff4b00'},
// {seriesName: 'test2', data: data2, color: '#0e95de'},
// {seriesName: 'test3', data: data3, color: '#00c19b'}
// ]})
this.setState({data: [
{seriesName: 'test', data: data, color: '#ff4b00'},
{seriesName: 'test2', data: data2, color: '#0e95de'},
{seriesName: 'test3', data: data3, color: '#00c19b'}
]})

// this.setState({
// data: [
// {
// seriesName: 'test2', data: data.slice(), color: '#0e95de'
// }
// ],
// pieData: pieData
// })
}

generateHData () {
var data1 = [{key: 'Points', value: 10}, {key: 'Assists', value: 17}, {key: 'Rebounds', value: 9}, {key: 'Steals', value: 3}, {key: 'Blocks', value: 18}]

this.setState({
data: [
{
seriesName: 'test2', data: data.slice(), color: '#0e95de'
}
],
pieData: pieData
data: data1
})
}

render () {
return (
<View style={styles.container}>
<View style={{padding: 20, marginTop: 100}}>
<PureChart type={'line'}
data={this.state.data}
width={'100%'}
height={100}
onPress={(a) => {
console.log('onPress', a)
}}
xAxisColor={'black'}
yAxisColor={'red'}
xAxisGridLineColor={'red'}
yAxisGridLineColor={'red'}
minValue={10}
labelColor={'red'}
showEvenNumberXaxisLabel={false}
customValueRenderer={(index, point) => {
if (index < 3) return null
return (
<Text style={{textAlign: 'center'}}>{point.y}</Text>
)
}}
/>
{/* <PureChart type={'bar'}
data={this.state.data}
height={100}
xAxisColor={'red'}
yAxisColor={'red'}
xAxisGridLineColor={'red'}
yAxisGridLineColor={'red'}
labelColor={'red'}
numberOfYAxisGuideLine={10} />
<PureChart type={'line'} data={this.state.data} />
<PureChart type={'bar'} data={this.state.data} />
<PureChart type={'pie'} data={this.state.pieData} /> */}
<Button style={{marginTop: 20}} title='Generate chart data' onPress={this.generateData}>
<Text>Generate chart data</Text>
</Button>

<PureChart type={'bar-horizontal'} data={this.state.data} highlightColor={'red'} height={300} />
<Button title='data generate' onPress={this.generateData} />
</View>
</View>
)
Expand Down
27 changes: 1 addition & 26 deletions examples/app.json
Original file line number Diff line number Diff line change
@@ -1,30 +1,5 @@
{
"expo": {
"name": "react-native-pure-chart",
"slug": "expotest",
"privacy": "public",
"sdkVersion": "34.0.0",
"platforms": [
"ios",
"android",
"web"
],
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/icon.png",
"splash": {
"image": "./assets/splash.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"updates": {
"fallbackToCacheTimeout": 0
},
"assetBundlePatterns": [
"**/*"
],
"ios": {
"supportsTablet": true
}
"sdkVersion": "29.0.0"
}
}
31 changes: 17 additions & 14 deletions examples/package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
{
"main": "node_modules/expo/AppEntry.js",
"name": "react-native-pure-chart-example",
"version": "0.0.1",
"description": "",
"devDependencies": {
"babel-preset-expo": "^4.0.0",
"jest-expo": "^29.0.0",
"react-native-scripts": "1.3.1",
"react-test-renderer": "16.3.1"
},
"main": "./node_modules/react-native-scripts/build/bin/crna-entry.js",
"scripts": {
"start": "expo start",
"android": "expo start --android",
Expand All @@ -8,16 +17,10 @@
"eject": "expo eject"
},
"dependencies": {
"expo": "^34.0.1",
"moment": "^2.24.0",
"prop-types": "^15.7.2",
"react": "16.8.3",
"react-dom": "^16.8.6",
"react-native": "https://github.com/expo/react-native/archive/sdk-34.0.0.tar.gz",
"react-native-web": "^0.11.4"
},
"devDependencies": {
"babel-preset-expo": "^6.0.0"
},
"private": true
}
"expo": "^29.0.0",
"moment": "^2.19.1",
"prop-types": "^15.6.0",
"react": "16.3.1",
"react-native": "^0.55.4"
}
}
96 changes: 92 additions & 4 deletions examples/pure-chart/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@ import _ from 'lodash'
import React from 'react'
import {View, Text} from 'react-native'

const SINGLE_SERIES_WITH_NUMBERS = 0
const SINGLE_SERIES_WITH_OBJECTS = 1
const MULTI_SERIES = 2

function flattenData (data) {
let numberCount = 0
let objectWithYCount = 0
Expand Down Expand Up @@ -363,3 +359,95 @@ export const drawXAxisLabels = (sortedData, gap, color = '#000000', showEvenNumb
</View>
)
}

export const drawHorizontalYAxisLabels = (arr, width) => {
return (
<View style={{
width: width,
height: 33,
justifyContent: 'flex-start',
alignItems: 'flex-start'
}}>

{arr.length === 0 ? (
<View
key={'guide0'}
style={{
left: 0,
position: 'absolute'
}}>
<Text style={{fontSize: 11}}>0</Text>
</View>
) : arr.map((v, i) => {
if (v[1] > width) return null
return (
<View
key={'guide' + i}
style={{
left: v[1] - 5,
position: 'absolute'
}}>
<Text style={{fontSize: 11}}>{v[0]}</Text>
</View>
)
})}

</View>
)
}

export const drawHorizontalXAxisLabels = (sortedData, gap) => {
return (
<View style={{
height: '100%',
paddingHorizontal: 10,
width: 30,
borderWidth: 1,
borderColor: 'black'
}}>
{sortedData.map((data, i) => {
return (
<View key={'label' + i} style={{
position: 'absolute',
top: data['gap'],
width: gap,
alignItems: 'center'
}}>
<Text style={{fontSize: 9}}>
{
data['x']
}
</Text>
</View>
)
})}
</View>
)
}

export const drawHorizontalGuideLine = (arr) => {
return (
<View style={{
width: '100%',
height: '100%',
position: 'absolute'
}}>

{arr.map((v, i) => {
return (
<View
key={'guide' + i}
style={{
width: 1,
height: '100%',
borderWidth: 1,
borderColor: '#e0e0e0',
left: v[1],
position: 'absolute'
}} />
)
})}

</View>
)
}
Loading