Charts 在Google折线图上切换X轴和Y轴

Charts 在Google折线图上切换X轴和Y轴,charts,google-visualization,Charts,Google Visualization,在我的X轴上是ip地址(字符串),Y轴上是百分比(数字),但是我想切换它们,当我尝试在代码上这样做时,我得到“给定轴上的所有系列必须具有相同的数据类型”错误。我认为这是因为它不允许第一列是数字 切换addColumn/addRow语句,以数字(内存使用和CPU使用)开始,以服务器IP结束。 使用arrayToDataTable而不是DataTable /*<![CDATA[*/ var serverStatuses = /*[[${server

在我的X轴上是ip地址(字符串),Y轴上是百分比(数字),但是我想切换它们,当我尝试在代码上这样做时,我得到“给定轴上的所有系列必须具有相同的数据类型”错误。我认为这是因为它不允许第一列是数字

切换addColumn/addRow语句,以数字(内存使用和CPU使用)开始,以服务器IP结束。 使用arrayToDataTable而不是DataTable

           /*<![CDATA[*/
            var serverStatuses = /*[[${serverStatuses}]]*/ 'default';
            /*]]>*/
            var performanceData =new google.visualization.DataTable();

            performanceData.addColumn('number', 'CPU Usage');
            performanceData.addColumn('number', 'Memory Usage');
            performanceData.addColumn('string', 'Server IP');

            for (var n = 0; n < serverStatuses.length; n++) {
                performanceData.addRow([serverStatuses[n].memoryUsage,
                    serverStatuses[n].cpuUsage, 
                 serverStatuses[n].ipAddress]);
            }
/**/
var performanceData=new google.visualization.DataTable();
performanceData.addColumn('number','CPU使用率');
performanceData.addColumn('number','Memory Usage');
addColumn('string','Server IP');
对于(var n=0;n

Y轴上的IP地址和X轴上的百分比。

正如您所发现的,折线图的Y轴上不能有字符串。
有关详细信息,请参阅

但是,我们可以使用对象表示法以数字表示ip地址。
然后显示地址而不是数字

在google的数据表中加载单元格时,
我们可以提供一个内在值,例如-->
'127.0.0.1'

或者我们可以使用一个对象,同时提供值(
v:
)和格式化值(
f:

{v:0,f:'127.0.0.1'}

这将导致图表使用零作为值,但在图表上显示地址。
通过将数据加载到数据表中,这解决了一半的问题

现在我们必须解决y轴上实际显示的标签问题。
在这里,我们可以使用
ticks
选项。
ticks
选项将接受上述相同的对象符号。
因此,如果我们想要y轴上的ip地址,请按如下所示提供
标记

[{v: 0, f: '127.0.0.1'}, {v: 0.1, f: '127.0.0.2'}, {v: 0.2, f: '127.0.0.3'}]
有关示例,请参见以下工作代码段

google.charts.load('current'{
软件包:['corechart']
}).然后(函数(){
var服务器状态=[
{memoryUsage:0.1,ipAddress:'127.0.0.1'},
{memoryUsage:0.3,ipAddress:'127.0.0.2'},
{memoryUsage:0.5,ipAddress:'127.0.0.3'},
{memoryUsage:0.7,ipAddress:'127.0.0.4'},
{memoryUsage:0.9,ipAddress:'127.0.0.5'},
];
var performanceData=new google.visualization.DataTable();
performanceData.addColumn('number','Memory Usage');
performanceData.addColumn('number','Server IP');
var=[];
forEach(函数(行、索引){
变量地址={
五:索引,,
f:row.ipAddress
};
axisTicks.push(地址);
performanceData.addRow([
罗.尤塞奇,
地址
]);
});
var chart=new google.visualization.LineChart(document.getElementById('chart_div'));
图表绘制(性能数据{
言辞:{
滴答声:轴滴答声
}
});
});

正如您所发现的,折线图的y轴上不能有字符串。
有关详细信息,请参阅

但是,我们可以使用对象表示法以数字表示ip地址。
然后显示地址而不是数字

在google的数据表中加载单元格时,
我们可以提供一个内在值,例如-->
'127.0.0.1'

或者我们可以使用一个对象,同时提供值(
v:
)和格式化值(
f:

{v:0,f:'127.0.0.1'}

这将导致图表使用零作为值,但在图表上显示地址。
通过将数据加载到数据表中,这解决了一半的问题

现在我们必须解决y轴上实际显示的标签问题。
在这里,我们可以使用
ticks
选项。
ticks
选项将接受上述相同的对象符号。
因此,如果我们想要y轴上的ip地址,请按如下所示提供
标记

[{v: 0, f: '127.0.0.1'}, {v: 0.1, f: '127.0.0.2'}, {v: 0.2, f: '127.0.0.3'}]
有关示例,请参见以下工作代码段

google.charts.load('current'{
软件包:['corechart']
}).然后(函数(){
var服务器状态=[
{memoryUsage:0.1,ipAddress:'127.0.0.1'},
{memoryUsage:0.3,ipAddress:'127.0.0.2'},
{memoryUsage:0.5,ipAddress:'127.0.0.3'},
{memoryUsage:0.7,ipAddress:'127.0.0.4'},
{memoryUsage:0.9,ipAddress:'127.0.0.5'},
];
var performanceData=new google.visualization.DataTable();
performanceData.addColumn('number','Memory Usage');
performanceData.addColumn('number','Server IP');
var=[];
forEach(函数(行、索引){
变量地址={
五:索引,,
f:row.ipAddress
};
axisTicks.push(地址);
performanceData.addRow([
罗.尤塞奇,
地址
]);
});
var chart=new google.visualization.LineChart(document.getElementById('chart_div'));
图表绘制(性能数据{
言辞:{
滴答声:轴滴答声
}
});
});


@WhiteHat这是我的dto类,我从数据库中检索数据列表。公共类ServerStatusParameters{private String totalPhysicalMemory;private String freePhysicalMemory;private int memoryUsage;private double cpuUsage;private String ipAddress;}@WhiteHat这是我的dto类,我从数据库中检索数据列表。公共类ServerStatusParameters{private String totalPhysicalMemory;private String freePhysicalMemory;private int MemorySage;private double cpuUsage;private String ipAddress;}