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

function ChartTemp() {
KangMin An's avatar
KangMin An committed
11
  const [temp, setTemp] = useState([]);
KangMin An's avatar
KangMin An committed
12
  const [newLabel, setNewLabel] = useState([]);
Spark's avatar
Spark committed
13

KangMin An's avatar
KangMin An committed
14
  useEffect(() => {
KangMin An's avatar
KangMin An committed
15
    if (isLogined()) {
Spark's avatar
Spark committed
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
      axios.get(routesClient.userWeather, { withCredentials: true })
        .then((res) => {
          console.log('temp', res.data.contents)
          const userWeather = res.data.contents.weather_in
          const userWeatherPredict = res.data.contents.weather_predict
          const Array = []
          const Array2 = []
          for (let i = 3; i < 9; i++) {
            Array.push(userWeather[i].temp)
            Array2.push(userWeather[i].collected_at.split('T')[1].split('.')[0])
          }
          for (let j = 0; j < 3; j++) {
            Array.push(userWeatherPredict[j].temp)
            Array2.push(userWeatherPredict[j].collected_at.split('T')[1].split('.')[0])
          }
          setTemp(Array)
          setNewLabel(Array2)
        })
KangMin An's avatar
KangMin An committed
34
    } else {
Spark's avatar
Spark committed
35
      axios.get(routesClient.outsideLoc + `3743011`).then((res) => {
KangMin An's avatar
KangMin An committed
36
        const outWeather = res.data.contents.weather_out;
KangMin An's avatar
KangMin An committed
37
38
39
40
41
42
43
        const Array = [];
        const Array2 = [];
        console.log(outWeather);
        let i = outWeather.length - 9;
        for (i; i < outWeather.length; i++) {
          Array.push(outWeather[i].temp);
          Array2.push(outWeather[i].collected_at.split("T")[1].split(".")[0]);
KangMin An's avatar
KangMin An committed
44
        }
KangMin An's avatar
KangMin An committed
45
46
        setTemp(Array);
        setNewLabel(Array2);
KangMin An's avatar
KangMin An committed
47
      });
KangMin An's avatar
KangMin An committed
48
    }
KangMin An's avatar
KangMin An committed
49
  }, []);
Spark's avatar
Spark committed
50

KangMin An's avatar
KangMin An committed
51
52
53
54
55
56
57
58
59
60
61
  const options = {
    legend: {
      display: true, // label 보이기 여부
    },
    scales: {
      yAxes: [
        {
          ticks: {
            min: 0, // y축 스케일에 대한 최소값 설정
            stepSize: 0.5, // y축 그리드 한 칸당 수치
          },
Spark's avatar
chartjs    
Spark committed
62
        },
KangMin An's avatar
KangMin An committed
63
64
      ],
    },
Spark's avatar
chartjs    
Spark committed
65

KangMin An's avatar
KangMin An committed
66
67
68
69
70
    // false : 사용자 정의 크기에 따라 그래프 크기가 결정됨.
    // true : 크기가 알아서 결정됨.
    maintainAspectRatio: false,
  };
  const data = {
KangMin An's avatar
KangMin An committed
71
    labels: newLabel,
KangMin An's avatar
KangMin An committed
72
73
74
75
76
77
78
79
80
81
82
83
    datasets: [
      {
        label: "온도",
        borderWidth: "2",
        data: temp,
        borderColor: [
          "rgba(75,192,192,1)",
          "rgba(75,192,192,1)",
          "rgba(75,192,192,1)",
          "rgba(75,192,192,1)",
          "rgba(75,192,192,1)",
          "rgba(75,192,192,1)",
Spark's avatar
chartjs    
Spark committed
84

KangMin An's avatar
KangMin An committed
85
86
87
88
          "rgba(191,191,191,1)",
          "rgba(191,191,191,1)",
          "rgba(191,191,191,1)",
        ],
Spark's avatar
chartjs    
Spark committed
89

KangMin An's avatar
KangMin An committed
90
        backgroundColor: [
KangMin An's avatar
KangMin An committed
91
92
93
94
95
96
          "rgba(75,192,192,0.1)",
          "rgba(75,192,192,0.1)",
          "rgba(75,192,192,0.1)",
          "rgba(75,192,192,0.1)",
          "rgba(75,192,192,0.1)",
          "rgba(75,192,192,0.1)",
Spark's avatar
Spark committed
97

KangMin An's avatar
KangMin An committed
98
99
100
          "rgba(191,191,191,0.1)",
          "rgba(191,191,191,0.1)",
          "rgba(191,191,191,0.1)",
KangMin An's avatar
KangMin An committed
101
102
103
104
        ],
      },
    ],
  };
Spark's avatar
Spark committed
105

KangMin An's avatar
KangMin An committed
106
107
108
109
110
111
  return (
    <Col id="chartTab">
      <Bar data={data} options={options} />
    </Col>
  );
}
Spark's avatar
chartjs    
Spark committed
112

KangMin An's avatar
KangMin An committed
113
export default ChartTemp;