supwork@qq.com 发表于 前天 13:13

如何使用代码生成图表及调整图表有坐标轴

一如何 在当前 工作表中插入

折线图:
1,数据在A2:AA2中
2,数据在A3:AA3中
及生成多条线的 折线图

二,设置已有折线图的 坐标轴最大值 最小值

var chart1 = sheet.charts.all();

设置 chart1的纵坐标最大值为29.4 最小值为 29.1

Wilson.Zhang 发表于 前天 13:13

本帖最后由 Wilson.Zhang 于 2025-1-8 17:02 编辑

supwork@qq.com 发表于 2025-1-8 11:11
帮助中有说可以通过数字设置最大值 最小值 但是没给具体示例,以下代码能运行,不报错 其它设置有效果了 ...
最大值最小值对应的属性名称分别为max、min,如下图所示:


请参考如下代码所示:
axes.primaryValue.max = 0.65;
axes/primaryValue.min = 0.3;

Wilson.Zhang 发表于 前天 17:46

您好!可以参考官网教程了解折线图的代码设置方式:
https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/charts/chart-types/line-chart/purejs

坐标轴的最大值和最小值可以通过坐标轴IAxis:max和IAxis:min分别设置,具体地需要先从图表Chart实例中获取坐标轴IAxes,由于图表有主坐标轴和二级坐标轴,所以还要根据需要从IAxes实例获取,结果对应为IAxis实例,至此便可设置最大值和最小值。请参考官网教程了解详情。

supwork@qq.com 发表于 前天 20:27

Wilson.Zhang 发表于 2025-1-7 17:46
您好!可以参考官网教程了解折线图的代码设置方式:
https://demo.grapecity.com.cn/spreadjs/SpreadJSTut ...

谢谢回复 ,但问题尚未解决
var sheet = obj.getActiveSheet();
// 显示行标
var chart1 = sheet.charts.all();

//var yAxis = chart1.options.scales.y;
// 设置最大值和最小值
//chart1.axes.primaryCategory.min(25.1);
//chart1.axes.primaryCategory.max(29);

if (chart1) {
    // 获取图表的数值轴(垂直坐标轴,对应VBA里的xlValue,这里根据实际API来确定获取垂直坐标轴的准确方式)
    var ax = chart1.axes.items.find(function (axis) {
      return axis.orientation === 'vertical';
    });

    if (ax) {
      // 设置最小值为0.2(这里的_MINZB1如果是一个变量,你需要提前定义好它对应的值,此处假设就是直接设置为0.2)
      ax.minimumValue = 0.2;
      // 设置最大值为0.4(同样的,_MAXZB1假设直接设置为0.4,若它是变量要提前定义好值)
      ax.maximumValue = 0.4;
    }
}
请帮修改以上代码以能设置纵坐标 最大值与最小值

supwork@qq.com 发表于 昨天 00:30

Crosses: SpreadJS支持通过设置数字或者以下枚举值来改变轴之间的交叉。GC.Spread.Sheets.Charts.AxisCrossPoint.

automatic
maximum
minimum
    var axes = chart.axes();
    axes.primaryCategory.crossPoint = 3;
    axes.primaryValue.crossPoint = GC.Spread.Sheets.Charts.AxisCrossPoint.maximum;
    chart.axes(axes);

官方帮助里也没有说明 这里如何 设置最大值与最小值 能具体说明一下用法不

Wilson.Zhang 发表于 昨天 10:13

按照在2楼给您提供的设置方式,对坐标轴设置了max和min后,需要将新数据状态的IAxes实例对象重新设置在Chart实例。如下动图所示:


官网教程的介绍中也有相关代码片段,您可以参考了解下:

supwork@qq.com 发表于 昨天 11:11

Wilson.Zhang 发表于 2025-1-8 10:13
按照在2楼给您提供的设置方式,对坐标轴设置了max和min后,需要将新数据状态的IAxes实例对象重新设置在Char ...

帮助中有说可以通过数字设置最大值 最小值 但是没给具体示例,以下代码能运行,不报错 其它设置有效果了,就是最大值 最小值没有设置,请指点。
var axes = chart.axes();
    // the style of the axis: color, fontFamily, fontSize
    axes.primaryCategory.style.color = '#f15353';
    // the line style of the axis: color, width
    axes.primaryCategory.lineStyle.width = 0;
    // the tick position of the axis: majorTickPosition and minorTickPosition
    axes.primaryCategory.majorTickPosition = GC.Spread.Sheets.Charts.TickMark.none
    // the tick label position of the axis
    axes.primaryCategory.tickLabelPosition = GC.Spread.Sheets.Charts.TickLabelPosition.none;
    // the tick label spacing of the axis
    axes.primaryCategory.tickLabelSpacing = 3;
    // the format of the axis
    axes.primaryCategory.numberFormatLinked = true;
    // the title of the axis: text, color, fontFamily and font size
    axes.primaryCategory.title.text = 'Test Axis Title';
    axes.primaryCategory.title.fontSize = 14;
      // axes.primaryCategory.minimum=0.3;
      // axes.primaryCategory.maximum=0.65;
      axes.primaryValue.minimum = 0.3;
      axes.primaryValue.maximum = 0.65;
    chart.axes(axes);

supwork@qq.com 发表于 昨天 13:06

本帖最后由 supwork@qq.com 于 2025-1-8 17:27 编辑

请直接给出具体的代码,谢谢

supwork@qq.com 发表于 昨天 17:18

本帖最后由 supwork@qq.com 于 2025-1-8 17:26 编辑

Wilson.Zhang 发表于 2025-1-8 17:01
最大值最小值对应的属性名称分别为max、min,如下图所示:



已自己试出来 了


var sheet = obj.getActiveSheet();
var chart= sheet.charts.all();

var axes = chart.axes();
var yda=sheet.getValue(1,28)
var yxa=sheet.getValue(2,28)
axes.primaryValue.max=yda;
axes.primaryValue.min=yxa;
chart.axes(axes);


var chart2= sheet.charts.all();

var axes2 = chart2.axes();
var yda2=sheet.getValue(1,29)
var yxa2=sheet.getValue(2,29)
axes2.primaryValue.max=yda2;
axes2.primaryValue.min=yxa2;
chart2.axes(axes2);
以上代码测试通过可以 一次性调整本表内两个图形的 坐标轴最大值 与最小值

Wilson.Zhang 发表于 10 小时前

supwork@qq.com 发表于 2025-1-8 17:18
已自己试出来 了




:hjyzw:

如有新问题,欢迎发新帖沟通。
:mj72:
页: [1] 2
查看完整版本: 如何使用代码生成图表及调整图表有坐标轴