- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望使用字符串作为折线图 Google Chart api X 轴的标签,其中我加入两组数据以在单折线图中绘制两条线,我设法使其在没有字符串标签的情况下工作(适用于数字)但没有显示轴线
google.charts.load('current', {'packages': ['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data1 = new google.visualization.DataTable();
data1.addColumn('string', 'Month');
data1.addColumn('number', 'Average Sales Price');
data1.addColumn({type: 'string', role: 'tooltip', p: {'html': true}});
data1.addRows([
[{v: 0, f:'Q4 2013'}, 3,'<span class="total-home-tooltip">$300K Some html - 1!</span>'],
[{v: 1, f:'Q1 2014'}, 6,'<span class="total-home-tooltip">$600K Some html - 2!</span>'],
[{v: 2, f:'Q2 2014'}, 5,'<span class="total-home-tooltip">$500K Some html - 3!</span>'],
[{v: 3, f:'Q3 2014'}, 8,'<span class="total-home-tooltip">$800K Some html - 4!</span>'],
[{v: 4, f:'Q4 2014'}, 2,'<span class="total-home-tooltip">$200K Some html - 5!</span>'],
[{v: 5, f:'Q1 2015'}, 5,'<span class="total-home-tooltip">$500K Some html - 6!</span>'],
[{v: 6, f:'Q2 2015'}, 5,'<span class="total-home-tooltip">$500K Some html - 7!</span>']
]);
var data2 = new google.visualization.DataTable();
data2.addColumn('string', 'Month');
data2.addColumn('number', 'Median Sales Price');
data2.addColumn({type: 'string', role: 'tooltip', p: {'html': true}});
/*if we would like to show string in x asix we have to use data in format {v: 0, f:'Q4 2013'} otherwise google api will not draw haxis lines */
data2.addRows([
[{v: 0, f:'Q4 2013'}, 5,'<span class="total-home-tooltip">Some html here</span>'],
[{v: 1, f:'Q1 2014'}, 1,'<span class="total-home-tooltip">Some html here</span>'],
[{v: 2, f:'Q2 2014'}, 3,'<span class="total-home-tooltip">Some html here</span>'],
[{v: 3, f:'Q3 2014'}, 9,'<span class="total-home-tooltip">Some html here</span>'],
[{v: 4, f:'Q4 2014'}, 4,'<span class="total-home-tooltip">Some html here</span>'],
[{v: 5, f:'Q1 2015'}, 5,'<span class="total-home-tooltip">Some html here</span>'],
[{v: 6, f:'Q2 2015'}, 7,'<span class="total-home-tooltip">Some html here</span>']
]);
var options1 = {
legend: {
position: 'bottom',
textStyle: {color: 'black', fontSize: 14},
pointShape: "triangle",
alignment: 'end'
},
interpolateNulls: true,
height: 312,
width: 1070,
colors: ['#EBAD00','#00ACE0'],
pointSize: 8,
backgroundColor: {fill: "transparent"},
tooltip: {isHtml: true},
hAxis: {
minValue: 0,
baselineColor:"#BBBBBB"
},
vAxis: {
gridlines: {color: "transparent"},
minValue: 0,
baselineColor:"#BBBBBB"
},
ticks: [{v: 0, f:'Jan'},{v: 1, f:'Feb'},{v: 2, f:'Mar'},{v: 3, f:'Apr'},{v: 4, f:'May'},{v: 5, f:'June'},{v: 6, f:'July'}], // <------- This does the trick
annotations: {
style: 'line'
}
};
var joinedData = google.visualization.data.join(data1, data2, 'full', null, [1,2], [1,2]);
var chart = new google.visualization.LineChart(document.getElementById('market_trend_chart1'));
chart.draw(joinedData, options1 );
}
<div id="market_trend_chart1"></div>
我收到此错误错误:类型不匹配。值 0 与列索引 0 中的类型字符串不匹配,我知道错误是变量类型不匹配,但不太确定如何解决此问题
没有字符串标签的工作 fiddle http://jsfiddle.net/j29Pt/536/ (问题是现在没有轴线)如果我尝试添加字符串作为标签 http://jsfiddle.net/j29Pt/535/图表似乎停止工作
最佳答案
首先,需要了解discrete vs continuous轴
'string'
列生成一个离散轴,'number'
列连续 轴
和特定的configuration options只适用于其中之一
例如,hAxis.ticks
仅适用于连续轴(和vAxis.ticks
)
因此,如果您想要一个真正的'string'
作为x轴,您将无法使用ticks
以下是一个工作示例,使用问题中的代码,使用 'string'
google.charts.load('current', {'packages': ['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data1 = new google.visualization.DataTable();
data1.addColumn('string', 'Month');
data1.addColumn('number', 'Average Sales Price');
data1.addColumn({type: 'string', role: 'tooltip', p: {'html': true}});
data1.addRows([
['Q4 2013', 3, '<span class="total-home-tooltip">$300K Some html - 1!</span>'],
['Q1 2014', 6, '<span class="total-home-tooltip">$600K Some html - 2!</span>'],
['Q2 2014', 5, '<span class="total-home-tooltip">$500K Some html - 3!</span>'],
['Q3 2014', 8, '<span class="total-home-tooltip">$800K Some html - 4!</span>'],
['Q4 2014', 2, '<span class="total-home-tooltip">$200K Some html - 5!</span>'],
['Q1 2015', 5, '<span class="total-home-tooltip">$500K Some html - 6!</span>'],
['Q2 2015', 5, '<span class="total-home-tooltip">$500K Some html - 7!</span>']
]);
var data2 = new google.visualization.DataTable();
data2.addColumn('string', 'Month');
data2.addColumn('number', 'Median Sales Price');
data2.addColumn({type: 'string', role: 'tooltip', p: {'html': true}});
data2.addRows([
['Q4 2013', 5, '<span class="total-home-tooltip">Some html here</span>'],
['Q1 2014', 1, '<span class="total-home-tooltip">Some html here</span>'],
['Q2 2014', 3, '<span class="total-home-tooltip">Some html here</span>'],
['Q3 2014', 9, '<span class="total-home-tooltip">Some html here</span>'],
['Q4 2014', 4, '<span class="total-home-tooltip">Some html here</span>'],
['Q1 2015', 5, '<span class="total-home-tooltip">Some html here</span>'],
['Q2 2015', 7, '<span class="total-home-tooltip">Some html here</span>']
]);
var options1 = {
legend: {
position: 'bottom',
textStyle: {color: 'black', fontSize: 14},
pointShape: 'triangle',
alignment: 'end'
},
interpolateNulls: true,
height: 312,
width: 1070,
colors: ['#EBAD00','#00ACE0'],
pointSize: 8,
backgroundColor: {fill: 'transparent'},
tooltip: {isHtml: true},
hAxis: {
minValue: 0,
baselineColor: '#BBBBBB'
},
vAxis: {
gridlines: {color: 'transparent'},
minValue: 0,
baselineColor:"#BBBBBB"
},
annotations: {
style: 'line'
}
};
var joinedData = google.visualization.data.join(data1, data2, 'full', [[0,0]], [1,2], [1,2]);
var chart = new google.visualization.LineChart(document.getElementById('market_trend_chart1'));
chart.draw(joinedData, options1);
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="market_trend_chart1"></div>
上述答案有问题,data.join
方法对数据进行排序,
这会导致季度无序(由于字符串排序)
作为解决方法,您可以添加一个附加列进行排序,
然后使用 DataView 隐藏排序列
请参阅以下工作片段...
google.charts.load('current', {
callback: drawChart,
packages: ['corechart']
});
function drawChart() {
var data1 = new google.visualization.DataTable();
data1.addColumn('string', 'Month');
data1.addColumn('number', 'Average Sales Price');
data1.addColumn({type: 'string', role: 'tooltip', p: {'html': true}});
data1.addColumn('number', 'Sort');
data1.addRows([
['Q4 2013', 3, '<span class="total-home-tooltip">$300K Some html - 1!</span>', 0],
['Q1 2014', 6, '<span class="total-home-tooltip">$600K Some html - 2!</span>', 1],
['Q2 2014', 5, '<span class="total-home-tooltip">$500K Some html - 3!</span>', 2],
['Q3 2014', 8, '<span class="total-home-tooltip">$800K Some html - 4!</span>', 3],
['Q4 2014', 2, '<span class="total-home-tooltip">$200K Some html - 5!</span>', 4],
['Q1 2015', 5, '<span class="total-home-tooltip">$500K Some html - 6!</span>', 5],
['Q2 2015', 5, '<span class="total-home-tooltip">$500K Some html - 7!</span>', 6]
]);
var data2 = new google.visualization.DataTable();
data2.addColumn('string', 'Month');
data2.addColumn('number', 'Median Sales Price');
data2.addColumn({type: 'string', role: 'tooltip', p: {'html': true}});
data2.addColumn('number', 'Sort');
data2.addRows([
['Q4 2013', 5, '<span class="total-home-tooltip">Some html here</span>', 0],
['Q1 2014', 1, '<span class="total-home-tooltip">Some html here</span>', 1],
['Q2 2014', 3, '<span class="total-home-tooltip">Some html here</span>', 2],
['Q3 2014', 9, '<span class="total-home-tooltip">Some html here</span>', 3],
['Q4 2014', 4, '<span class="total-home-tooltip">Some html here</span>', 4],
['Q1 2015', 5, '<span class="total-home-tooltip">Some html here</span>', 5],
['Q2 2015', 7, '<span class="total-home-tooltip">Some html here</span>', 6]
]);
var options1 = {
legend: {
position: 'bottom',
textStyle: {color: 'black', fontSize: 14},
pointShape: 'triangle',
alignment: 'end'
},
interpolateNulls: true,
height: 312,
width: 1070,
colors: ['#EBAD00','#00ACE0'],
pointSize: 8,
backgroundColor: {fill: 'transparent'},
tooltip: {isHtml: true},
hAxis: {
minValue: 0,
baselineColor: '#BBBBBB'
},
vAxis: {
gridlines: {color: 'transparent'},
minValue: 0,
baselineColor:"#BBBBBB"
},
annotations: {
style: 'line'
}
};
var joinedData = google.visualization.data.join(data1, data2, 'full', [[0,0]], [1,2,3], [1,2,3]);
joinedData.sort([{column: 3}]);
var joinedView = new google.visualization.DataView(joinedData);
joinedView.hideColumns([3, 6]);
var chart = new google.visualization.LineChart(document.getElementById('market_trend_chart1'));
chart.draw(joinedView, options1);
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="market_trend_chart1"></div>
此外,使用问题中的方法也可以
如果您想使用数字列,每个单元格都有一个值 (v:
) 和一个格式化值 (f:
)
格式化值 (f:
) 将始终是 'string'
但值 (v:
) 必须与列的类型匹配
data1.addColumn('number', 'Month'); // <-- type must match v:
data1.addRows([[{v: 0, f:'Q4 2013'}]]);
使用刻度线
时适用相同规则
关于javascript - 在 Google Line Chart API 中使用字符串作为标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39556883/
当前问题陈述的输入是 - 输入.txt #START_OF_TEST_CASES #DATA key1:VA1 key2:VA2 key3:VA3 key4:VA4 key5:VA5 #DEND #E
编辑:添加了 PDO 调用。 这是实际的错误: Notice: Object of class PDOStatement could not be converted to int in Unknow
“git diff --stat”和“git log --stat”显示如下输出: $ git diff -C --stat HEAD c9af3e6136e8aec1f79368c2a6164e56
我有一个具有以下格式的输入文件:安大略省:布兰普顿:北纬 43° 41':西经 79° 45'安大略省:多伦多:北纬 43° 39':西经 79° 23'魁北克省:蒙特利尔:北纬 45° 30':西经
空白行仅包含\n或\r\n或\r。 tempfile = open(file,"r") for id,line in enumerate(tempfile): if(line != "\n"
我尝试使用 BABYLON.js 开发棋盘游戏我有一个板子和一个 ArcRotateCamera。 我的灯是 HemisphericLight 当我在板上画线时,我希望这些线具有相同的外观。现在,当我
我尝试使用 BABYLON.js 开发棋盘游戏我有一个板子和一个 ArcRotateCamera。 我的灯是 HemisphericLight 当我在板上画线时,我希望这些线具有相同的外观。现在,当我
有一个while read循环: while read line; do grep "^$line" file1 done < target 我应该使用 "^$line" 来获得正确答案。我想
我有一个我无法解决的 numpy 问题。我有填充 0 和 1 的 3D 数组 (x,y,z)。例如,z 轴上的一个切片: array([[1, 0, 1, 0, 1, 1, 0, 0],
作为临时方法,我使用 .txt 文件来存储程序的某些变量。写入与 fs.appendFile 完美配合,但考虑到它的大小,使用 fs.readFile 读取不合适 - 我想得到某一行 来自文件,以及
我试图找到一种通过R studio进行调试的方法,但是我发现的所有解决方案都无法真正起作用。 1.)CTRL + enter:有效,但不会通过循环的每次迭代,而只能执行一次。 2.)添加“browse
在我的应用程序中,我的 EditText 左侧有行号 - 到目前为止一切都很好,行号与 EditText 的行完全对齐。 问题是,如果用户更改 EditText 的文本大小,则行号无法正确对齐。所以我
通过使用 + 的参数调用它,我可以使 vim 将光标定位在文件的最后一行。 : vi + myfile # "+" = go to last line of file 我怎样才能做到
我已经在文件中写入了这样的数据(某种) {:a 25 :b 28} {:a 2 :b 50} ... 我想要这些 map 的惰性序列。 大约有 4000 万行。我也可以写 10000 的 block
我在文本区域中发现了一个奇怪的错误(?)... 比如说,有一个 使用多行文本(用户粘贴的文本或预设文本无关紧要,两者都经过测试)。 我想从 中获取文本并替换 \n与其他东西......结果是,.re
我需要一个新行,这样我就可以在 PFD 中看到一个格式,我尝试添加一个页面宽度但它没有用,我用另一个东西/n 也没有用。这是我的代码。我可以手动添加格式,因为我需要显示从数据库中获取的信息,并且我在一
我正在尝试编写一个 Java 程序,它将大量 GPS 坐标捕捉到线形文件(道路网络),并且不仅返回新坐标,还返回捕捉到的线段的唯一标识符。该标识符是否是 FID、其他语言中使用的“索引”(即,其中 1
你好,我正在努力处理 JavaScript/NodeJS 中的数组。 基本上,这是我的代码: let arr = new Array(); arr = { "Username" : var1,
我正在学习 matplotlib 的基本教程,我正在处理的示例代码是: import numpy as np import matplotlib.pylab as plt x=[1,2,3,4] y=
所以,假设我有一个包含 20 行的文本文件,每行都有不同的文本。我希望能够有一个包含第一行的字符串,但是当我执行 NextLine(); 时我希望它成为下一行。我试过了,但它似乎不起作用: strin
我是一名优秀的程序员,十分优秀!