当前位置: 首页 > 知识库问答 >
问题:

Google饼图,无法为两个不同的图形设置不同的值

葛修筠
2023-03-14

我试图重新使用谷歌饼图功能,在2个不同的div中绘制图表。

我的html:

<div class="piechart" style="height: 220px;" data-completeness="35"></div>
<div class="piechart" style="height: 220px;" data-completeness="80"></div>

我的javascript:

function drawChart()
{
    {#var completeness = 30;#} //this is working and setting same value to the two different charts
    var completeness = $(this).attr('data-completeness'); //this is not working and charts are rendered very small

    console.log(completeness); //this is dumping the right values in both cases, either the same, or two different ones as I expect

    var data = google.visualization.arrayToDataTable([
        ['Nom',    'Valeur'],
        ["Profil rempli à ", completeness],
        ['Manque', 100 - completeness]
    ]);

    var options = {
        backgroundColor: { fill:'transparent'},
        pieSliceBorderColor : 'transparent',
        pieHole: 0.8,
        legend: {position: 'top'},
        width: 220,
        height: 220,
        tooltip: {trigger: 'none'},
        pieStartAngle: -90,
        pieSliceTextStyle :{fontsize : 16, color: 'transparent'},
        slices: {
            0: { color: '#09b4ff'},
            1: { color: '#444'}
        },
        chartArea : {width: '90%', height: '90%'}
    };

    var chart = new google.visualization.PieChart(this);
    chart.draw(data, options);
}

google.load('visualization', '1', {packages:['corechart']});
google.setOnLoadCallback(function(){
    $('.piechart').each(drawChart);
});

因此,当我设置一个值时,我有以下好看的图表:

当我设置两个不同的值时,结果很奇怪:

信息:我有一个

1:1 XMLHttpRequest无法加载https://www.google.com/uds/api/visualization/1.0/dca88b1ff7033fac80178eb526cb263e/uien.css.请求的资源上没有访问控制允许起源标头。因此,原产地http://foodmeup.dev不允许访问。

两种情况都有错误,但在第一种情况下效果很好,所以我不确定这是不是问题所在。

共有1个答案

闻梓
2023-03-14

. attr('data-完整性')返回字符串"35"和"80",因此您可以使用parseInt来获取实际数字,或者您可以像这样使用. data("完整性")

var completeness = $(this).data('completeness');
             // or parseInt($(this).attr('data-completeness'));

完整代码

function drawChart(){
    var completeness = $(this).data('completeness');
    // or parseInt($(this).attr('data-completeness'))

    var data = google.visualization.arrayToDataTable([
        ['Nom',    'Valeur'],
        ["Profil rempli à ", completeness],
        ['Manque', 100 - completeness]
    ]);
    var options = {
        backgroundColor: { fill:'transparent'},
        pieSliceBorderColor : 'transparent',
        pieHole: 0.8,
        legend: {position: 'top'},
        width: 220,
        height: 220,
        tooltip: {trigger: 'none'},
        pieStartAngle: -90,
        pieSliceTextStyle :{fontsize : 16, color: 'transparent'},
        slices: {
            0: { color: '#09b4ff'},
            1: { color: '#444'}
        },
        chartArea : {width: '90%', height: '90%'}
    };

    var chart = new google.visualization.PieChart(this);
   chart.draw(data, options);
}

google.load('visualization', '1', {packages:['corechart']});
google.setOnLoadCallback(function(){
    $('.piechart').each(drawChart);
});    

https://jsfiddle.net/sjsaa2xf/

 类似资料:
  • 我有一个简单的代码,它在两个不同的图(图1和图2)中绘制了完全相同的东西。然而,我必须写一行ax?。绘制(x,y)两次,一次用于ax1,一次用于ax2。我怎么可能只有一个plot表达式(对于我更复杂的代码来说,有多个redondant表达式可能是一个麻烦的来源)。类似于ax1、ax2。绘图(x,y)?

  • 问题内容: 我正在使用基于SDK演示示例中EfficientAdapter示例的BaseAdapter扩展版本。 我的数据基本上是一个对象(),其中包含一个,其中包含实际的地点列表,可通过访问。此ArrayList数据按范围排序,由一些特殊项目(分隔符)组成,没有数据,但标志设置为。 现在,每当我得到一个作为分隔符的数据对象时,它都会返回并根据当前数据对象是由真实数据组成还是仅仅是分隔符虚拟物来使

  • 问题内容: 我有以下代码在PDF内绘制垂直条形图和折线图。 如何将这2个图形保存在PDF的2个不同页面中。我看到可以使用- 但是,不是使用Canvas,而是使用其中 不存在方法的Drawing对象。 如何将2个图形保存在PDF的2个不同页面中?第二个图形(折线图)的右边与第一个图形(垂直条形图)重叠,从而阻碍了该条形图。 这是我的 代码。 问题答案: 制作画布并在其上渲染图形: 希望能帮助到你 :

  • 问题内容: 我面临有关Java方法同步的问题。希望我能简要解释一下: 我在两个不同的类中,在两个不同的包中有两个不同的方法。就像是: 好的,所以现在我需要同步这两个 不是thread的方法 。到目前为止,我有两种不同的方法: 共享信号量 。 在和外部创建一个共享的静态信号量,例如: 无论如何,我真的不知道JVM是否会将其视为共享信号量。 已同步(SharedClass.class) 。 使用共享类

  • 其中一个测试通过,另一个给出以下错误: java.lang.ClassCastException:类org.springframework.http.ResponseEntity不能强制转换为类org.junit.jupiter.api.function.executable(org.springframework.http.ResponseEntity和org.junit.jupiter.api

  • 有什么方法可以使用两个不同的配置文件在settings.xml文件执行两个不同的构建在不同的服务器上?例如:在我的settings.xml文件中,我有两个配置文件: 现在,我想要一个项目的“test1”配置文件和另一个项目的“test2”,我希望我的pom.xml构建属性从settings.xml配置文件的属性中获取。 如果我将两个概要文件都保存在“activeProfiles”中,那么我的两个项