1

私はこれを試してきましたが、難しいようです。y軸の数をユーザーの選択に依存させるようにしています。ユーザーが選択できるセクションは3つあります。つまり、次のとおりです。

  1. プロットの時間範囲
  2. プロットするID。データベースから取得されます。
  3. データベースで検索するフィールド

ユーザーが2つのIDと2つのフィールドを選択した場合、プロットには4つの異なる線が表示されます。つまり、次のことを意味します。

行数=選択されたIDの数*選択されたフィールドの数

これで、凡例のラベルと表示されるy軸の数に同じ数が表示されることがわかります。

私が挙げた例では、次のようになります。

  • Field_1-ID_1
  • Field_2-ID_1
  • Field_1-ID_2
  • Field_2-ID_2

凡例ラベルとy軸が生成されますが、それはすべてユーザーの選択によって異なります。

ご清聴ありがとうございました。

4

1 に答える 1

0

私はついに、php側から、jqplotのseriesプロパティの要素を期待される形式で生成することでこれを解決する方法を見つけました。

series:[{label:Field_1-ID_1,yaxis:'yaxis'},{label:Field_1-ID_2,yaxis:'y2axis'},{label:Field_2-ID_1,yaxis:'y3axis'},{label:Field_2-ID_2,yaxis:'y4axis'}]

誰かがそれがどのように行われるかに興味があるなら、以下のコードをチェックしてください:

$con = mysql_connect($hostname, $username, $password);
if (!$con)
{
 die('Could not connect: ' . mysql_error());
}

mysql_select_db($database, $con);

$unit = mysql_real_escape_string($_GET["units"]);//ID selected by user, e.g.(ID_1,ID_2)
$stat = mysql_real_escape_string($_GET["start"]);//start time
$stop = mysql_real_escape_string($_GET["stop"]);//stop time
$field1 = mysql_real_escape_string($_GET["fieldlist"]);//Field selected by user, e.g.(Field_1,Field_2)

$first=true;
echo "Label=";
echo "[";

$field = explode(",", $field1);
$count=count($field);
$i=0;$j=1;
while($i<$count)
{ 
  $sq="SELECT su_id FROM Station_stat
  WHERE su_id in ($unit) GROUP BY su_id";

  $res = mysql_query($sq);

  while($row = mysql_fetch_array($res)){
  if ($first != true )
    {
        echo ",";
        echo "{label:\"$field[$i] ".$row['su_id']."\",yaxis:\"y".++$j."axis\"}";
    }
  else
      echo "{label:\"$field[$i] ".$row['su_id']."\",yaxis:\"yaxis\"}";
      $first = false;
 }
++$i;
}
echo "];";

そのphpの出力は次のようになります。

Label=[{label:Field_1-ID_1,yaxis:'yaxis'},{label:Field_1-ID_2,yaxis:'y2axis'},{label:Field_2-ID_1,yaxis:'y3axis'},{label:Field_2-ID_2,yaxis:'y4axis'}];

次に、jqplot関数で、seriesをLabelに設定します。

series:Label
于 2013-01-24T14:33:22.277 に答える