๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

์›น์—์„œ ๊ทธ๋ž˜ํ”„ ๋งŒ๋“œ๋Š” Plot.js ์•Œ์•„๋ณด๊ธฐ ๋ณธ๋ฌธ

๐Ÿ‘ฉ‍๐Ÿ’ป ๋ฐฑ์—”๋“œ(Back-End)/Node js

์›น์—์„œ ๊ทธ๋ž˜ํ”„ ๋งŒ๋“œ๋Š” Plot.js ์•Œ์•„๋ณด๊ธฐ

์ง•์ง•์•ŒํŒŒ์นด 2022. 11. 22. 13:59
728x90
๋ฐ˜์‘ํ˜•

<๋ณธ ๋ธ”๋กœ๊ทธ๋Š” plotly ์˜ function reference ๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค :-)>

https://plotly.com/javascript/plotlyjs-function-reference/

 

Function

Detailed examples of Function Reference including changing color, size, log axes, and more in JavaScript.

plotly.com

 

 

 

๐ŸŒผ Streaming with Timestamp

๐ŸŒบ ํŒŒ์ผ ๊ตฌ์กฐ

 

  • index.html
<!DOCTYPE html>
  <html>
    <head>
      <div class='my-div'>
	  	  Real-Time Chart with Plotly.js
  	  </div>

      <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
    
      <!-- Load papaparse.js -->
	    <script src="javascripts/papaparse.min.js"></script>

		  <!-- Load d3.js and c3.js -->
		  <script src="javascripts/d3.v3.min.js" charset="utf-8"></script>
		  <script src="javascripts/c3.min.js"></script>
    </head>

  <body>
      <div id="graph"></div>
	    <script src="javascripts/index.js"></script>
      <link href="css/style.css" rel="stylesheet" type="text/css">
  </body>

 

  • javascripts/index.js
// 1. csv ๋กœ๋”ฉํ•ด์„œ ์ „์ฒด์ ์œผ๋กœ ๊ณต์œ ํ•˜์ž
var years = new Array();
var CNT_WAIT = new Array();

function parseData() {
	Papa.parse("./data/test.csv", {
	download: true,
	complete: function(results) {
		console.log(results)
		for (var i = 1; i < results.data.length; i++) {
			years.push(results.data[i][0]);
			CNT_WAIT.push(results.data[i][1]);
			}
			console.log(years);
		}
	})
};
parseData();


// 2. ๊ทธ ๋‹ค์Œ Y ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ํ•จ์ˆ˜
var index = 0;
function getYvalueFromCsv(index){
	//csv ๋กœ๋”ฉ
	return CNT_WAIT[index];

}
// ๊ทธ ๋‹ค์Œ X ๊ฐ’ ๊ฐ€์ ธ์˜ค๋Š” ํ•จ์ˆ˜
function getXvalueFromCsv(index){
	//csv ๋กœ๋”ฉ
	return years[index];

}

// 3. ์‹œ๊ฐ„์„ ํ™œ์šฉํ•ด์„œ ๊ทธ๋‹ค์Œ ๊ฐ’ ์—…๋ฐ์ดํŠธ ํ•˜๊ธฐ
var time = new Date();

var data = [{
	x: [getXvalueFromCsv(index)], 
	y: [getYvalueFromCsv(index)],
	mode: 'lines',
	line: {color: '#80CAF6'}
}]


Plotly.newPlot('graph', data);  

// ๊ทธ ๋‹ค์Œ cnt ์ฆ๊ฐ€์‹œํ‚ค๊ธฐ
var cnt = 0;

// 1์ดˆ๋งˆ๋‹ค ์—…๋ฐ์ดํŠธ ๋ฐ˜๋ณตํ•˜๊ธฐ
var interval = setInterval(function() {
	var time = new Date();

	var update = {
		x:  [[getXvalueFromCsv(cnt)]],
		y: [[getYvalueFromCsv(cnt)]]
	}
	
	console.log(getYvalueFromCsv(cnt))
	console.log(getXvalueFromCsv(cnt))

	var olderTime = time.setMinutes(time.getMinutes() - 1);
	var futureTime = time.setMinutes(time.getMinutes() + 1);

	var minuteView = {
        xaxis: {
			type: 'date',
			range: [olderTime,futureTime]
        }
      };

	// Plotly.relayout('graph', minuteView);
	// ์ „์ฒด ํ”Œ๋กฏ์„ ๋‹ค์‹œ ๊ทธ๋ฆฌ๋Š” ๊ฒƒ ๋ณด๋‹ค, ๊ธฐ์กด์— ์—…๋ฐ์ดํŠธ ํ•˜๋ฉด์„œ ๊ทธ๋ฆฌ๊ธฐ
	Plotly.extendTraces('graph', update, [0])

	// cnt ๊ฐ€ 100 ์ด ๋˜๋ฉด ๋‹ค์‹œ ์‹œ์ž‘
	//if(++cnt === 100) clearInterval(interval);
	++cnt;
}, 500);

 

  • css/style.css
.my-div {
    font-size : 40px;
    height : 200px;
    text-align : center;
  }

 

๐ŸŒบ ์‹œ๊ฐํ™”

 

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•
Comments