使用PHPSpreadsheet制作两条折线图。我输入了电子表格单元格中的x和Y值。 PHPSpreadsheet生成带有难看的X轴的图表。 Y数据,即大约17摄氏度到大约45摄氏度。Y轴是0到50,以5度为增量,非常理想。但是,X数据是0到34分钟,以2分钟为增量。 X轴为0到35分钟,以1分钟为增量。我要附上一张图片。
这是X轴刻度线和数据集:
$xAxisTickValues = [
new
DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_NUMBER, 'Worksheet!$C$1:$C$18', null, 18),
new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_NUMBER, 'Worksheet!$F$1:$F$18', null, 18)
];
dataSeriesValues = [
new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_NUMBER, 'Worksheet!$D$1:$D$18' ,null , 18),
new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_NUMBER, 'Worksheet!$G$1:$G$18' ,null , 18)
];
不涉及任何错误。预期或期望的结果是X轴从0到40,以5度为增量。
通过右键单击不良图表,选择xy散点图,然后单击“确定”,可以得到良好的图表x轴。 Excel自动创建了好轴吗?
请有人指导我使用PHPSpreadsheet获取正确的轴。
答案 0 :(得分:0)
我几乎知道我问题的答案。 x和y轴都应由以下代码控制:
$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
);
我可以改变y轴的所有方面。但是我不能对x轴的max和min做任何事情。看来它们受以下各项控制:
$xAxisTickValues = [
new
DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_STRING, 'Worksheet!$C$1:$C$18', null, 18),
new DataSeriesValues(DataSeriesValues::DATASERIES_TYPE_STRING, 'Worksheet!$F$1:$F$18', null, 18)
];
如果删除刻度线控件,则它们似乎x轴由数据点数控制。 因此,这几乎就是我的答案。如何获取setAxisOptionsProperties来接管并允许我根据需要设置最大值和最小值?