0

html

<!doctype html>
<html>
  <head>
    <script src="https://cdn.anychart.com/js/7.14.0/anychart-bundle.min.js"></script>
    <link rel="stylesheet" href="https://cdn.anychart.com/css/7.14.0/anychart-ui.min.css" />
    <style>
      html, body, #container {
        width: 1000px;
        height: 600px;;
        margin: auto;
        padding: 0;
      }
    </style>
  </head>
  <body>
    <div id="container"></div>
    <script>

    anychart.onDocumentReady(function() {

  // set the data
    table = anychart.data.table('x');
    table.addData([
{'x': '2015-04-01', 'o': 18.23, 'h': 19.36, 'l': 18.18, 'c': 19.31},
{'x': '2015-04-02', 'o': 19.50, 'h': 19.89, 'l': 19.00, 'c': 19.29},
{'x': '2015-04-03', 'o': 19.13, 'h': 19.15, 'l': 18.43, 'c': 18.75},
{'x': '2015-04-06', 'o': 18.54, 'h': 18.76, 'l': 18.27, 'c': 18.76},
{'x': '2015-04-07', 'o': 18.76, 'h': 19.14, 'l': 18.63, 'c': 18.76},
{'x': '2015-04-08', 'o': 18.97, 'h': 19.62, 'l': 18.96, 'c': 19.19},
{'x': '2015-04-09', 'o': 19.45, 'h': 19.70, 'l': 19.22, 'c': 19.67},
{'x': '2015-04-13', 'o': 19.69, 'h': 19.85, 'l': 19.37, 'c': 19.59},
{'x': '2015-04-14', 'o': 19.44, 'h': 19.55, 'l': 19.00, 'c': 19.35},
{'x': '2015-04-15', 'o': 19.21, 'h': 19.25, 'l': 18.51, 'c': 18.83},
{'x': '2015-04-16', 'o': 19.16, 'h': 19.78, 'l': 18.99, 'c': 19.76},
{'x': '2015-04-17', 'o': 19.69, 'h': 19.69, 'l': 19.00, 'c': 19.20},
{'x': '2015-04-20', 'o': 18.89, 'h': 18.95, 'l': 18.57, 'c': 18.61},
{'x': '2015-04-21', 'o': 18.59, 'h': 19.08, 'l': 18.57, 'c': 18.97},
{'x': '2015-04-22', 'o': 18.76, 'h': 19.19, 'l': 18.70, 'c': 18.78},
{'x': '2015-04-23', 'o': 18.92, 'h': 18.94, 'l': 18.47, 'c': 18.92},
{'x': '2015-04-24', 'o': 19.82, 'h': 21.20, 'l': 19.50, 'c': 20.91},
{'x': '2015-04-27', 'o': 20.55, 'h': 20.82, 'l': 20.28, 'c': 20.40},
{'x': '2015-04-28', 'o': 20.25, 'h': 20.27, 'l': 19.79, 'c': 19.93},
{'x': '2015-04-29', 'o': 20.11, 'h': 20.89, 'l': 20.06, 'c': 20.25},
{'x': '2015-04-30', 'o': 20.60, 'h': 21.10, 'l': 20.01, 'c': 20.26},
{'x': '2015-05-01', 'o': 20.19, 'h': 20.35, 'l': 19.86, 'c': 20.24},
{'x': '2015-05-04', 'o': 20.37, 'h': 20.40, 'l': 19.98, 'c': 20.19},
{'x': '2015-05-05', 'o': 20.14, 'h': 20.24, 'l': 19.64, 'c': 19.79},
{'x': '2015-05-06', 'o': 20.06, 'h': 20.07, 'l': 19.61, 'c': 19.79},
{'x': '2015-05-07', 'o': 19.96, 'h': 19.99, 'l': 19.14, 'c': 19.32},
{'x': '2015-05-08', 'o': 19.46, 'h': 19.64, 'l': 19.14, 'c': 19.42},
{'x': '2015-05-11', 'o': 19.20, 'h': 19.73, 'l': 19.01, 'c': 19.32},
{'x': '2015-05-12', 'o': 19.51, 'h': 20.06, 'l': 19.47, 'c': 19.89},
{'x': '2015-05-13', 'o': 19.92, 'h': 20.00, 'l': 19.67, 'c': 19.75},
{'x': '2015-05-14', 'o': 19.83, 'h': 20.23, 'l': 19.80, 'c': 20.06}
    ]);

    // map the data
    mapping = table.mapAs({'open':"o",'high': "h", 'low':"l", 'close':"c"});
    chart = anychart.stock();

    // set the series
    var series = chart.plot(0).ohlc(mapping);
    series.name("ACME Corp. stock prices (apr 2015 - jul 2015)");

    chart.title('Generali');
    chart.container('container');

    chart.draw();
});

    </script>
  </body>
</html>

php

$file = fopen("isp.csv","r");

$lines = array();
while( ($row = fgetcsv($file)) !== FALSE ) {
    $lines[] = $row;
}
var_dump($lines);

csv file

the csv file is a yahoo finance historical data formatted in

Date,Open,High,Low,Close,Adj Close,Volume
2016-01-04,2.799631,2.799631,2.703530,2.982000,2.703530,103103922                       
2016-01-05,2.723475,2.756113,2.707156,3.040000,2.756113,70473223                        
2016-01-06,2.745234,2.756113,2.681771,2.958000,2.681771,84184856                        
2016-01-07,2.620121,2.661825,2.560284,2.908000,2.636440,122691238                       
2016-01-08,2.641880,2.692650,2.627374,2.898000,2.627374,96943673                        
2016-01-11,2.618308,2.672704,2.591109,2.858000,2.591109,75364956                        
2016-01-12,2.598362,2.663639,2.585670,2.916000,2.643693,81961998                        
2016-01-13,2.661825,2.734355,2.661825,2.970000,2.692650,96167028

I need to sobstitute the table data.addData with the value of the csv file. How i can do that? Someone can provide me a foreach or another cycle to inizialize the value of the table?

1 Answer 1

1

ped,

Try the following, since $lines[] is an array

Caveat: the following suggested answer runs with couple of assumptions-- 1. You will always have 7 data points separated by comma 2. AND each data points will not be blank---if you want to, you could avoid this assumption by checking to see if its blank or not by using isset()

table.addData([
<?php
$isFirst = TRUE;
foreach($lines as $line) {
    $lineData = explode(",", $line);

    echo ($isFirst === FALSE) ? "{'Date' : '$lineData[0]', 'Open' : '$lineData[1]', 'High' : '$lineData[2]', 'Low' : '$lineData[3]', 'Close' : '$lineData[4]', 'Adj Close' : '$lineData[5]', 'Volume' : '$lineData[6]'}," : "";

    $isFirst = FALSE;

}
?>

Hope this helps!

-Rush

Sign up to request clarification or add additional context in comments.

1 Comment

i tried this code and the explode() method give me this error: explode() expects parameter 2 to be string, array given in C:\xampp\htdocs\prova\prova.php on line 11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.