如何为我的phpspreadsheet图表获取正确的格式x轴?

时间:2019-06-08 23:44:09

标签: php phpspreadsheet

我正在使用33_Chart_create_scatter.php制作两线的xyScatter图表。一切进展顺利,除了x轴没有按照我希望的格式进行格式化。没有相关的错误参与者。 x轴仅差。请参阅第一个图像。对于正确的(所需)x轴,请参见第二张图像。有人可以帮助我实现正确的X轴格式吗? 只需右键单击图表区域并选择“更改图表类型”,即可得到正确的x轴格式。然后,我选择(已经选择)“ X Y(Scatter)”和“确定”。 X轴更改为我正确的X轴图像中显示的轴。因此,这带来了我的第二个问题,如果我无法通过代码校正来获得正确的X轴格式,那么我们可以在创建图表中包含宏吗?打开新的电子表格时,其中包含的简单的三行auto_open宏将产生正确的图表/ x轴。

我已经使用了水平和垂直选择作为源值。我也尝试使用特定值作为来源。在我的图像中看到J1:R1。我不知道如何添加我的图像。因此,不正确的x轴从1到大约50乘以1。看起来好像有两到三组数字都挤在一起了。正确的刻度是0到40,以5的均匀间隔表示。这是分钟的刻度。 y比例看起来很完美。

这里是所涉及的代码。

$ xAxisTickValues = [     new DataSeriesValues(DataSeriesValues :: DATASERIES_TYPE_NUMBER,'工作表!$ C $ 1:$ C $ 18',null,18),     新     DataSeriesValues(DataSeriesValues :: DATASERIES_TYPE_NUMBER,'工作表!$ F $ 1:$ F $ 18',null,18)    ]; enter image description here

1 个答案:

答案 0 :(得分:0)

以下代码应控制x和y属性。我能够控制Y轴的所有属性。 x轴最小值和最大值的显示方式由x轴刻度值控制。如果我不使用x轴刻度值,那么x轴的最小值和最大值由y个数据点的数量控制吗? 我该怎么做才能将此代码用于控制x轴的最小值和最大值?

$xaxis = new Axis();
$xaxis->setAxisOptionsProperties('low', 0, 'autoZero', null, 'in', 'out', 0, 40, 5, 0);

$title = new Title('Calorimetric Calibration');
$yAxisLabel = new Title(html_entity_decode('Temp (°C)',ENT_QUOTES,'UTF-8'));
$xAxisLabel = new Title('Time (Min)');

// Create the chart  
$chart = new Chart(
    'chart1', // name
    $title, // title
    $legend, // legend
    $plotArea, // plotArea
    true, // plotVisibleOnly
    0, // displayBlanksAs
    $xAxisLabel, // xAxisLabel
    $yAxisLabel,  // yAxisLabel
    $yaxis, 
    $xaxis,
    null, 
    null
);