ChartPressure.js 3.28 KB
Newer Older
Spark's avatar
Spark committed
1
2
3
4
5
6
7
import axios from 'axios';
import React, { useEffect, useState } from 'react'
import { Col } from 'react-bootstrap';
import { Line } from 'react-chartjs-2'
import { callUserInfo } from '../utils/CheckDB';
import { isLogined } from './../utils/Auth';
import { routesClient } from './../routesClient';
Spark's avatar
chartjs    
Spark committed
8
9
10

function ChartPressure() {

Spark's avatar
Spark committed
11
12
13
14
15
    const [press, setPress] = useState([])
    const [newLabel, setNewLabel] = useState([])

    useEffect(() => {
        if (isLogined()) {
Spark's avatar
Spark committed
16
17
18
19
20
21
22
23
24
25
26
27
28
29
            axios.get(routesClient.userWeather, { withCredentials: true })
                .then((res) => {
                    console.log('press', res.data.contents)
                    const userWeather = res.data.contents.weather_in
                    const Array = []
                    const Array2 = []
                    for (let i = 0; i < userWeather.length; i++) {
                        Array.push(userWeather[i].press)
                        Array2.push(userWeather[i].collected_at.split('T')[1].split('.')[0])
                    }
                    setPress(Array)
                    setNewLabel(Array2)

                })
Spark's avatar
Spark committed
30
31
        }
        else {
Spark's avatar
Spark committed
32
            axios.get(routesClient.outsideLoc + `3743011`)
Spark's avatar
Spark committed
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
                .then((res) => {
                    const outWeather = res.data.contents.weather_out
                    const Array = []
                    const Array2 = []
                    for (let i = 0; i < outWeather.length; i++) {
                        Array.push(outWeather[i].press)
                        Array2.push(outWeather[i].collected_at.split('T')[1].split('.')[0])
                        // const colHour = outWeather[i].collected_at.split('T')[1].split('.')[0].split(':')[0]
                        // const colMin = outWeather[i].collected_at.split('T')[1].split('.')[0].split(':')[1]
                    }
                    setPress(Array)
                    setNewLabel(Array2)
                })
        }
    }, [])

Spark's avatar
chartjs    
Spark committed
49
50
51
52
53
54
55
56
57
58
59
60
61
62
    const options = {
        legend: {
            display: true, // label 보이기 여부
        },
        scales: {
            yAxes: [{
                display: true,
                ticks: {
                    min: 900,
                    max: 1100,
                    stepSize: 20
                }
            }]
        },
Spark's avatar
Spark committed
63
        maintainAspectRatio: false
Spark's avatar
chartjs    
Spark committed
64
65
    }
    const data = {
Spark's avatar
Spark committed
66
        labels: newLabel,
Spark's avatar
chartjs    
Spark committed
67
68
69
        datasets: [
            {
                label: '기압',
Spark's avatar
Spark committed
70
71
                data: press,
                lineTension: 0.1,
Spark's avatar
chartjs    
Spark committed
72
73
                borderWidth: '2',
                fill: true,
Spark's avatar
Spark committed
74
75
76
77
78
79
80
81
82
83
84
85
                backgroundColor: 'rgba(75,192,192,0.1)',
                borderColor: 'rgba(75,192,192,1)',
                borderCapStyle: 'round',
                pointBorderColor: 'rgba(75,192,192,1)',
                pointBackgroundColor: '#fff',
                pointBorderWidth: 5,
                pointHoverRadius: 5,
                pointHoverBackgroundColor: 'rgba(75,192,192,1)',
                pointHoverBorderColor: 'rgba(220,220,220,1)',
                pointHoverBorderWidth: 2,
                pointRadius: 1,
                pointHitRadius: 10,
Spark's avatar
chartjs    
Spark committed
86
87
88
89
90
91
92
93
            }
        ]
    };

    return (
        <Col id='chartTab'>
            <Line
                data={data}
Spark's avatar
Spark committed
94
                options={options}
Spark's avatar
chartjs    
Spark committed
95
96
97
98
99
100
            />
        </Col>
    )
};

export default ChartPressure;