Javascript 尝试使2个绘图仪独立工作-不使用全局变量

Javascript 尝试使2个绘图仪独立工作-不使用全局变量,javascript,global-variables,plotly,local-variables,Javascript,Global Variables,Plotly,Local Variables,这里是新手 我正在使用plotly创建图形,目前有2个图形,但是我的变量当前是全局变量,并且相互影响图形 我怎样才能最好地压缩变量,使其仅在本地可访问到它所属的图形 绘图仪使用变量数据、布局和配置。但每个图形的这些值都不同 这是两个独立的图表,收入饼图和固定成本饼图: /* INCOME PIE CHART */ var data = [{ values: [], labels: ['Salary', 'Bonuses', 'Gigs'], type: 'pie' }]; var

这里是新手

我正在使用plotly创建图形,目前有2个图形,但是我的变量当前是全局变量,并且相互影响图形

我怎样才能最好地压缩变量,使其仅在本地可访问到它所属的图形

绘图仪使用变量数据、布局和配置。但每个图形的这些值都不同

这是两个独立的图表,收入饼图和固定成本饼图:

/* INCOME PIE CHART */
var data = [{
  values: [],
  labels: ['Salary', 'Bonuses', 'Gigs'],
  type: 'pie'
}];

var layout = {
    title: "Please enter data<br>above to graph",
    font: {size: 12},
    paper_bgcolor:"#ade7ba"
};

var config = {responsive: true}

Plotly.newPlot('incomePieChart', data, layout, config );

function incomePieChart() {
    var netSalaryPER =
        Number($("input#netSalary").val()) / 
        Number($("input#totalIncomeValue").val()) 
        * 100;
    var bonusSalaryPER =
        Number($("input#bonusSalary").val()) / 
        Number($("input#totalIncomeValue").val()) 
        * 100;
    var gigSalaryPER =
        Number($("input#gigSalary").val()) / 
        Number($("input#totalIncomeValue").val()) 
        * 100;
    data[0].values[0] = netSalaryPER;
    data[0].values[1] = bonusSalaryPER
    data[0].values[2] = gigSalaryPER
    /* TESTING PURPOSES USE THIS TO WRITE PERCENTAGES $("input#netSalaryPER").val(netSalaryPER); */
    layout.title = 'Income Overview';
    Plotly.newPlot('incomePieChart', data, layout, config );
}

/*FIXED COSTS PIE CHART*/
var data = [{
  values: [],
  labels: ["Home", "Transport", "Insurance", "Subscriptions", "Credit Card Payments"],
  type: "pie"
}];

var layout = {
    title: "Please enter data<br>above to graph",
    font: {size: 12},
    paper_bgcolor:"#ade7ba"
};


var config = {responsive: true}

Plotly.newPlot("fixedCostsPieChart", data, layout, config );

function fixedCostsPieChart() {
    var totalHomeCostValuePER =
        Number($("input#totalHomeCostValue").val()) / 
        Number($("input#totalFixedCostsValue").val()) 
        * 100;
    var totalTransportCostValuePER =
        Number($("input#totalTransportCostValue").val()) / 
        Number($("input#totalFixedCostsValue").val()) 
        * 100;
    var totalInsuranceCostValuePER =
        Number($("input#totalInsuranceCostValue").val()) / 
        Number($("input#totalFixedCostsValue").val()) 
        * 100;
    var totalSubscriptionCostValuePER =
        Number($("input#totalSubscriptionCostValue").val()) / 
        Number($("input#totalFixedCostsValue").val()) 
        * 100;
    var totalCreditcardCostValuePER =
        Number($("input#totalCreditcardCostValue").val()) / 
        Number($("input#totalFixedCostsValue").val()) 
        * 100;
    data[0].values[0] = totalHomeCostValuePER;
    data[0].values[1] = totalTransportCostValuePER;
    data[0].values[2] = totalInsuranceCostValuePER;
    data[0].values[3] = totalSubscriptionCostValuePER;
    data[0].values[4] = totalCreditcardCostValuePER;
    layout.title = "Fixed Costs";
    Plotly.newPlot("fixedCostsPieChart", data, layout, config );
}
/*收入饼图*/
风险值数据=[{
值:[],
标签:[“工资”、“奖金”、“演出”],
键入:“馅饼”
}];
变量布局={
标题:“请在上图中输入数据”
, 字体:{size:12}, 纸张颜色:“ade7ba” }; var config={responsive:true} Plotly.newPlot('incomePieChart',数据,布局,配置); 函数incomePieChart(){ 变量netSalaryPER= 数字($(“input#netSalary”).val())/ 数字($(“输入#totalIncomeValue”).val() * 100; 博努萨莱珀变种= 数字($(“输入#bonusSalary”).val())/ 数字($(“输入#totalIncomeValue”).val() * 100; var gigSalaryPER= 数字($(“输入#gigSalary”).val())/ 数字($(“输入#totalIncomeValue”).val() * 100; 数据[0]。值[0]=netSalaryPER; 数据[0]。值[1]=bonusSalaryPER 数据[0]。值[2]=gigSalaryPER /*出于测试目的,使用它来写入百分比$(“input#netSalaryPER”).val(netSalaryPER)*/ layout.title=‘收入概览’; Plotly.newPlot('incomePieChart',数据,布局,配置); } /*固定成本饼图*/ 风险值数据=[{ 值:[], 标签:[“住宅”、“交通”、“保险”、“订阅”、“信用卡付款”], 类型:“馅饼” }]; 变量布局={ 标题:“请在上图中输入数据”
, 字体:{size:12}, 纸张颜色:“ade7ba” }; var config={responsive:true} Plotly.newPlot(“固定成本图表”、数据、布局、配置); 函数fixedCostsPieChart(){ var totalHomeCostValuePER= 数字($(“输入#totalHomeCostValue”).val())/ 数字($(“输入#总固定成本值”).val() * 100; var totalTransportCostValuePER= 数字($(“输入#totalTransportCostValue”).val())/ 数字($(“输入#总固定成本值”).val() * 100; var totalInsuranceCostValuePER= 数字($(“输入#totalInsuranceCostValue”).val())/ 数字($(“输入#总固定成本值”).val() * 100; var totalSubscriptionCostValuePER= 数字($(“输入#totalSubscriptionCostValue”).val())/ 数字($(“输入#总固定成本值”).val() * 100; var totalCreditcardCostValuePER= 数字($(“输入#totalCreditcardCostValue”).val())/ 数字($(“输入#总固定成本值”).val() * 100; 数据[0]。值[0]=totalHomeCostValuePER; 数据[0]。值[1]=totalTransportCostValuePER; 数据[0]。值[2]=totalInsuranceCostValuePER; 数据[0]。值[3]=totalSubscriptionCostValuePER; 数据[0]。值[4]=totalCreditcardCostValuePER; layout.title=“固定成本”; Plotly.newPlot(“固定成本图表”、数据、布局、配置); }
将你想隐藏的变量封装在一个函数中。我就是这么想的,刚才我很难让第二个incomePieChart正常工作。。。如何从第二个函数访问第一个函数中的数据?如果需要共享数据,请将其从两个函数中取出,并将其作为参数提供给它们。