web-dev-qa-db-ja.com

グラフモジュールを使用して、ビューに複数の系列の折れ線グラフを表示する方法

同じグラフに複数の折れ線グラフを作成する必要があります。年の列、製品の列、および消費者の列があります。製品と年または消費者と年をプロットできますが、3つの列すべてを使用すると、製品と消費者の両方のデータを同じ線上に表示するグラフが表示されます。

私は Charts モジュールを使用しており、Highchartsライブラリをグラフ作成エンジンおよびビュー統合として使用しています。

製品と消費者のラインを同じグラフに表示するにはどうすればよいですか?グラフがプレビュー6のようになることを期待していました。 https://www.drupal.org/node/2426177#preview6

これが私のチャートの外観です。

データ:

data

製品:

productOptions

productChart

消費者:

consumerOptions

consumerChart

両方とも:

bothOptions

bothChart

4
splunge

これを機能させる方法(これらのグラフをまとめる)は、「親のグラフ」と「子のグラフ」と呼ばれるものを操作することです ビューUIを使用してグラフを作成する手順 。より具体的には、「UIでの複数のシリーズとコンボチャートの作成」の段落で詳しく説明しています。ここからの引用です:

...複数のグラフを重ねて組み合わせることができます。 「親」チャートは、高さ、幅、タイトル、およびその他のプロパティなどのグローバル情報を提供します。 「子」であるグラフは、データと(オプションで)第2軸のみを提供します。 「ビューのUIを使用したグラフの作成」セクションの指示に従ってグラフの最初の一連のデータを組み立てたら、「グラフアドオン」タイプの同じビューに新しい表示を追加します。 「Chart Add-on」タイプは、ビュー構成の上部にある「+ Add」メニューから、新しいページまたはブロック表示を追加するのと同じ方法で追加されます。

この新しい表示が追加された後、「親チャートと結合」の設定を見つけ、この値を変更して、すでに組み立てた親チャートを指すようにします。次に、子グラフの設定を調整して、さまざまなデータを取り込みます(多くの場合、フィルター設定をオーバーライドすることにより)。これで、親表示に戻り、子グラフの結果が親グラフの結果にマージされていることを確認できます。このアプローチを使用して、縦棒グラフの上に折れ線グラフなど、さまざまな種類のグラフを組み合わせることができます。すべての種類のグラフを組み合わせることができるわけではなく、無効な組み合わせによってグラフがエラーをスローする場合があることに注意してください。

このようなチャートのオンラインデモについては、「 集計なしの組み合わせチャート 」を参照してください。ここからの引用です:

以下のチャート(「チャート」モジュールを使用して作成)は、コンテンツタイプ「記事」のすべてのノードに関する組み合わせチャートを示しています。

  • "field_optionlist"( "年"などの一部の選択リスト値を使用)
  • field_free_format_text」(数値が含まれていると想定)は、Y軸を左にして、親チャートで使用されます。
  • field_free_format_nr」(一部の数値が含まれていると想定)は、Y軸を右にして子チャートで使用されます。

このオンラインデモは、2つの「Area charts」の組み合わせで構成されています。 2つのグラフのそれぞれの「設定」のみを「折れ線グラフ」に変更すると、各ビューの「フォーマット」内)では、同様の組み合わせグラフのセットが表示されますが、代わりに折れ線グラフとして表示されます。以下は、そのグラフを作成したビュー(ビューのエクスポート形式)です(両方のグラフの形式として「折れ線グラフ」を使用)。

$view = new view();
$view->name = 'combination_chart_without_using_aggregation';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'Combination chart without using aggregation';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */

/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'Combination chart without aggregation';
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['pager']['type'] = 'full';
$handler->display->display_options['pager']['options']['items_per_page'] = '10';
$handler->display->display_options['style_plugin'] = 'chart';
$handler->display->display_options['style_options']['type'] = 'line';
$handler->display->display_options['style_options']['label_field'] = 'body';
$handler->display->display_options['style_options']['data_fields'] = array(
  'field_free_format_text' => 'field_free_format_text',
  'body' => 0,
);
$handler->display->display_options['style_options']['field_colors'] = array(
  'body' => '#2f7ed8',
  'field_free_format_text' => '#233a99',
);
/* Header: Global: Text area */
$handler->display->display_options['header']['area']['id'] = 'area';
$handler->display->display_options['header']['area']['table'] = 'views';
$handler->display->display_options['header']['area']['field'] = 'area';
$handler->display->display_options['header']['area']['content'] = 'The chart below (created using the "charts" module) shows a combination chart about all nodes of content type "Article", which has these fields with these "machine names" (+ values):

- "field_optionlist" (with some select list values, such as the "year")
- "field_free_format_text" (assumed to contain some numeric values), with Y-axis left, is used in the parent chart.
- "field_free_format_nr" (assumed to contain some numeric values), with Y-axis right, is used in the child chart.';
$handler->display->display_options['header']['area']['format'] = 'filtered_html';
/* Field: Content: Free Format Text */
$handler->display->display_options['fields']['field_free_format_text']['id'] = 'field_free_format_text';
$handler->display->display_options['fields']['field_free_format_text']['table'] = 'field_data_field_free_format_text';
$handler->display->display_options['fields']['field_free_format_text']['field'] = 'field_free_format_text';
$handler->display->display_options['fields']['field_free_format_text']['label'] = 'Products';
/* Field: Content: OptionList */
$handler->display->display_options['fields']['field_optionlist']['id'] = 'field_optionlist';
$handler->display->display_options['fields']['field_optionlist']['table'] = 'field_data_field_optionlist';
$handler->display->display_options['fields']['field_optionlist']['field'] = 'field_optionlist';
$handler->display->display_options['fields']['field_optionlist']['label'] = 'Year';
/* Sort criterion: Content: Post date */
$handler->display->display_options['sorts']['created']['id'] = 'created';
$handler->display->display_options['sorts']['created']['table'] = 'node';
$handler->display->display_options['sorts']['created']['field'] = 'created';
$handler->display->display_options['sorts']['created']['order'] = 'DESC';
/* Filter criterion: Content: Published */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 1;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Filter criterion: Content: Type */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
  'article' => 'article',
);
/* Filter criterion: Content: OptionList (field_optionlist) */
$handler->display->display_options['filters']['field_optionlist_value']['id'] = 'field_optionlist_value';
$handler->display->display_options['filters']['field_optionlist_value']['table'] = 'field_data_field_optionlist';
$handler->display->display_options['filters']['field_optionlist_value']['field'] = 'field_optionlist_value';
$handler->display->display_options['filters']['field_optionlist_value']['value'] = array(
  13 => '13',
  14 => '14',
  15 => '15',
);

/* Display: Chart */
$handler = $view->new_display('page', 'Chart', 'page');
$handler->display->display_options['defaults']['style_plugin'] = FALSE;
$handler->display->display_options['style_plugin'] = 'chart';
$handler->display->display_options['style_options']['type'] = 'line';
$handler->display->display_options['style_options']['xaxis_title'] = 'Year';
$handler->display->display_options['style_options']['yaxis_title'] = 'Nr of Products';
$handler->display->display_options['style_options']['label_field'] = 'field_optionlist';
$handler->display->display_options['style_options']['data_fields'] = array(
  'field_free_format_text' => 'field_free_format_text',
  'field_optionlist' => 0,
);
$handler->display->display_options['style_options']['field_colors'] = array(
  'field_free_format_text' => '#7b0d49',
  'field_optionlist' => '#8bbc21',
);
$handler->display->display_options['defaults']['style_options'] = FALSE;
$handler->display->display_options['defaults']['row_plugin'] = FALSE;
$handler->display->display_options['defaults']['row_options'] = FALSE;
$handler->display->display_options['path'] = 'combinatuion_chart_with_no_aggregation';

/* Display: Chart add-on */
$handler = $view->new_display('chart', 'Chart add-on', 'chart_1');
$handler->display->display_options['pager']['type'] = 'some';
$handler->display->display_options['defaults']['style_plugin'] = FALSE;
$handler->display->display_options['style_plugin'] = 'chart_extension';
$handler->display->display_options['style_options']['type'] = 'line';
$handler->display->display_options['style_options']['label_field'] = 'field_optionlist';
$handler->display->display_options['style_options']['data_fields'] = array(
  'field_free_format_nr' => 'field_free_format_nr',
  'field_optionlist' => 0,
);
$handler->display->display_options['style_options']['field_colors'] = array(
  'field_optionlist' => '#2f7ed8',
  'field_free_format_nr' => '#006d1a',
);
$handler->display->display_options['defaults']['style_options'] = FALSE;
$handler->display->display_options['defaults']['row_plugin'] = FALSE;
$handler->display->display_options['defaults']['row_options'] = FALSE;
$handler->display->display_options['defaults']['fields'] = FALSE;
/* Field: Content: OptionList */
$handler->display->display_options['fields']['field_optionlist']['id'] = 'field_optionlist';
$handler->display->display_options['fields']['field_optionlist']['table'] = 'field_data_field_optionlist';
$handler->display->display_options['fields']['field_optionlist']['field'] = 'field_optionlist';
$handler->display->display_options['fields']['field_optionlist']['label'] = 'Year';
/* Field: Content: Free Format Nr */
$handler->display->display_options['fields']['field_free_format_nr']['id'] = 'field_free_format_nr';
$handler->display->display_options['fields']['field_free_format_nr']['table'] = 'field_data_field_free_format_nr';
$handler->display->display_options['fields']['field_free_format_nr']['field'] = 'field_free_format_nr';
$handler->display->display_options['fields']['field_free_format_nr']['label'] = 'Enduser Price';
$handler->display->display_options['fields']['field_free_format_nr']['settings'] = array(
  'thousand_separator' => '',
  'prefix_suffix' => 1,
);
$handler->display->display_options['parent_display'] = 'page';
$handler->display->display_options['inherit_yaxis'] = '0';
2
Pierre.Vriens