2017-08-07 68 views
0

我正在使用canvasjs绘制柱形图。我使用的代码从这个链接https://canvasjs.com/editor/?id=https://canvasjs.com/example/gallery/column/oil_reserves/,代码如下:如何使用canvasjs使用文本数据绘制柱形图

<!DOCTYPE HTML> 
<html> 
<head> 
<title>Basic HTML5 Column Chart </title> 
<script type="text/javascript"> 
window.onload = function() { 
var chart = new CanvasJS.Chart("chartContainer", 
    { 
    title:{ 
    text: "Top Oil Reserves"  
    }, 
    animationEnabled: true, 
    axisY: { 
    title: "Reserves(MMbbl)" 
    }, 
    legend: { 
    verticalAlign: "bottom", 
    horizontalAlign: "center" 
    }, 
    theme: "theme2", 
    data: [ 

    {   
    type: "column", 
    showInLegend: true, 
    legendMarkerColor: "grey", 
    legendText: "MMbbl = one million barrels", 
    dataPoints: [  
    {y: 297571, label: "Venezuela"}, 
    {y: 267017, label: "Saudi" }, 
    {y: 175200, label: "Canada"}, 
    {y: 154580, label: "Iran"}, 
    {y: 116000, label: "Russia"}, 
    {y: 97800, label: "UAE"}, 
    {y: 20682, label: "US"},   
    {y: 20350, label: "China"}   
    ] 
    } 
    ] 
}); 

chart.render(); 
} 
</script> 
<script type="text/javascript" src="https://canvasjs.com/assets/script/canvasjs.min.js"></script> 
</head> 
<body> 
<div id="chartContainer" style="height: 300px; width: 100%;"> 
</div> 
</body> 
</html> 

现在我想用在Python,而不是在数据点的默认值生成一个文本文件。测试文件数据看起来像逗号分隔的字典数据。这里是文本文件数据的样本:

 {'DNS_SERVER1': 2.768651, 'FTP_SERVER1': 2.488129, 'AUTHENTICATION_SERVER1': 2.768651, 'WAP_SERVER1': 2.768651, 'WEB_SERVER1': 2.768651, 'EMAIL_SERVER1': 2.768651} 

我想要的标签,像“DNS_SERVER1”和y的值等于像2.768651分号的第二部分分号之前第一部分。我如何使用canvasjs脚本来做到这一点?任何帮助表示赞赏。

谢谢。

回答

0

您必须对该文件进行读取两个独立的数据集(标签和数据)并插入这样的:

data = { 
      labels: ["DNS_SERVER", "FTP_SERVER", "AUTH_SERVER"], 
      datasets: [{ 
      label: 'Performance', 
       data: [2.768651, 2.488129, 2.768651] 
        }] 
     }; 

以上是标称方式。 您可以为加载的数据更改“标签:”数据集和“数据:”数据集。

+0

我该怎么做?假设我有一个带有以下数据的文本文件:{'DNS_SERVER1':2.768651,'FTP_SERVER1':2.488129,'AUTHENTICATION_SERVER1':2.768651,'WAP_SERVER1':2.768651,'WEB_SERVER1':2.768651,'EMAIL_SERVER1':2.768651},从这个角度来看,如何使数据像你的?没有任何方法可以将文本文件内容解析为json数据吗?因为我看到一个可以使用代码的例子,如果我可以从文本文件解析数据为json。 – Arif

+1

这里是一个例子http://jsfiddle.net/canvasjs/RxeP6/ – Arif

+0

http://stackabuse.com/reading-and-writing-json-to-a-file-in-python/ –