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

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

KangMin An's avatar
KangMin An committed
72
73
74
75
76
    // false : 사용자 정의 크기에 따라 그래프 크기가 결정됨.
    // true : 크기가 알아서 결정됨.
    maintainAspectRatio: false,
  };
  const data = {
KangMin An's avatar
KangMin An committed
77
    labels: newLabel,
KangMin An's avatar
KangMin An committed
78
79
80
81
82
83
84
85
86
87
88
89
    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
90

KangMin An's avatar
KangMin An committed
91
92
93
94
          "rgba(191,191,191,1)",
          "rgba(191,191,191,1)",
          "rgba(191,191,191,1)",
        ],
Spark's avatar
chartjs    
Spark committed
95

KangMin An's avatar
KangMin An committed
96
        backgroundColor: [
KangMin An's avatar
KangMin An committed
97
98
99
100
101
102
          "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
103

KangMin An's avatar
KangMin An committed
104
105
106
          "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
107
108
109
110
        ],
      },
    ],
  };
Spark's avatar
Spark committed
111

KangMin An's avatar
KangMin An committed
112
113
114
115
116
117
  return (
    <Col id="chartTab">
      <Bar data={data} options={options} />
    </Col>
  );
}
Spark's avatar
chartjs    
Spark committed
118

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