在 html div 中显示 phplot 图
display phplot graph inside a html div
我正在使用 phplot 库来显示图表。我从他们的文档中挑选了一个例子,并用一些数据进行了尝试。它在简单的 php 页面上运行良好。
这是代码
$column_names = array(
'Beef', 'Fish', 'Pork', 'Chicken', 'Butter',
'Cheese',
'Ice Cream');
// | | | | | | |
$data = array(
array('1910', 48.5, 11.2, 38.2, 11.0, 18.4, 3.9, 1.9),
array('1930', 33.7, 10.2, 41.1, 11.1, 17.6, 4.7, 9.7),
array('1950', 44.6, 11.9, 43.0, 14.3, 10.9, 7.7, 17.4),
array('1970', 79.6, 11.7, 48.1, 27.4, 5.4, 11.4, 17.8),
array('1990', 63.9, 14.9, 46.4, 42.4, 4.0, 24.6, 15.8),
);
$plot = new PHPlot(800, 500);
$plot->SetImageBorderType('plain'); // Improves presentation in the manual
$plot->SetTitle("U.S. Annual Per-Capita Consumption\n"
. "of Selected Meat and Dairy Products");
$plot->SetLegend($column_names);
# Move the legend to the lower right of the plot area:
$plot->SetLegendPixels(700, 300);
$plot->SetDataValues($data);
$plot->SetDataType('text-data-yx');
$plot->SetPlotType('stackedbars');
$plot->SetXTitle('Pounds Consumed Per Capita');
# Show data value labels:
$plot->SetXDataLabelPos('plotstack');
# Rotate data value labels to 90 degrees:
$plot->SetXDataLabelAngle(90);
# Format the data value labels with 1 decimal place:
$plot->SetXDataLabelType('data', 1);
# Specify a whole number for the X tick interval:
$plot->SetXTickIncrement(20);
# Disable the Y tick marks:
$plot->SetYTickPos('none');
$plot->DrawGraph();
但是当我尝试应用一些 html 将其显示在固定位置时,我失败了。
显示它html我在写完上面的代码后写了下面的代码。
<html>
<head>
<title>PHPlot Example - Inline Image</title>
</head>
<body>
<h1>PHPlot Example - Inline Image</h1>
<div class="graph">
<img src="<?php echo $plot->EncodeImage();?>" alt="Plot Image">
</div>
</body>
</html>
我得到了这样的输出
请指导我哪里做错了。谢谢:)
我通过临时保存图形图像然后使用该临时图像在图像标签内显示来解决我的问题哦html。
这是代码
$plot->SetIsInline(True);
$plot->SetOutputFile("test.png");
图片保存为test.png。现在这样显示
<div class="graph">
<img src="test.png" alt="Plot Image">
</div>
我正在使用 phplot 库来显示图表。我从他们的文档中挑选了一个例子,并用一些数据进行了尝试。它在简单的 php 页面上运行良好。
这是代码
$column_names = array(
'Beef', 'Fish', 'Pork', 'Chicken', 'Butter',
'Cheese',
'Ice Cream');
// | | | | | | |
$data = array(
array('1910', 48.5, 11.2, 38.2, 11.0, 18.4, 3.9, 1.9),
array('1930', 33.7, 10.2, 41.1, 11.1, 17.6, 4.7, 9.7),
array('1950', 44.6, 11.9, 43.0, 14.3, 10.9, 7.7, 17.4),
array('1970', 79.6, 11.7, 48.1, 27.4, 5.4, 11.4, 17.8),
array('1990', 63.9, 14.9, 46.4, 42.4, 4.0, 24.6, 15.8),
);
$plot = new PHPlot(800, 500);
$plot->SetImageBorderType('plain'); // Improves presentation in the manual
$plot->SetTitle("U.S. Annual Per-Capita Consumption\n"
. "of Selected Meat and Dairy Products");
$plot->SetLegend($column_names);
# Move the legend to the lower right of the plot area:
$plot->SetLegendPixels(700, 300);
$plot->SetDataValues($data);
$plot->SetDataType('text-data-yx');
$plot->SetPlotType('stackedbars');
$plot->SetXTitle('Pounds Consumed Per Capita');
# Show data value labels:
$plot->SetXDataLabelPos('plotstack');
# Rotate data value labels to 90 degrees:
$plot->SetXDataLabelAngle(90);
# Format the data value labels with 1 decimal place:
$plot->SetXDataLabelType('data', 1);
# Specify a whole number for the X tick interval:
$plot->SetXTickIncrement(20);
# Disable the Y tick marks:
$plot->SetYTickPos('none');
$plot->DrawGraph();
但是当我尝试应用一些 html 将其显示在固定位置时,我失败了。 显示它html我在写完上面的代码后写了下面的代码。
<html>
<head>
<title>PHPlot Example - Inline Image</title>
</head>
<body>
<h1>PHPlot Example - Inline Image</h1>
<div class="graph">
<img src="<?php echo $plot->EncodeImage();?>" alt="Plot Image">
</div>
</body>
</html>
我得到了这样的输出
请指导我哪里做错了。谢谢:)
我通过临时保存图形图像然后使用该临时图像在图像标签内显示来解决我的问题哦html。 这是代码
$plot->SetIsInline(True);
$plot->SetOutputFile("test.png");
图片保存为test.png。现在这样显示
<div class="graph">
<img src="test.png" alt="Plot Image">
</div>