一部のX軸の値が欠落している場合に、グラフモジュールを使用して複合グラフを作成する方法


7

私はしばらくの間私の問題の解決策を探していましたが、成功しなかったので、多分ここの誰かが私を助けてくれるでしょう。

ChartsモジュールのViews統合を使用して、3つの折れ線グラフを1つのグラフに結合する方法」に関する質問への回答はすでに見ましたが、それでも問題は解決しませんでした。

私が使用チャートはでグラフを作成するために、モジュールビュー「を使用してチャート」の表示形式を。また、グラフライブラリとしてHighchartsを使用して、「Passed」ノードの数(緑色)を描画しています。また、「失敗」ノード(赤)の数を表すグラフアドオンを作成して、同じグラフに複数のシリーズを含めることができるようにしました。

現時点でこれは私が以下で説明する問題に関して私が持っているチャートです:

ここに画像の説明を入力してください

上の表からわかるように、4つの異なる日付があります(実行日時)。グラフには4つの日付が表示されます。代わりに、3つの日付のみが表示されます。これが理由です。最後の日付には「合格」ノードがないため、グラフ表示(親)の軸にはその値がありません。最後の日付の2つのFailedを表すグラフアドオンは、4番目ではなく3番目の日付を使用して最初のディスプレイの上に表示され、エラーが発生します。

このモジュールではx軸の値は無関係であるようです。

私が欲しいチャートはこのようなものでなければなりません:

ここに画像の説明を入力してください

私はこのグラフをExcelで作成しましたが、(Drupalで間違った結果が出ている)違いは、「0合格」または「0失敗」ではなく、結果がまったくないことです。

これを正しく機能させる方法はありますか?私はすでに利用可能な多くのチャートモジュールを試しました、そして私の知る限りでは誰もがこの問題を抱えています...

以下も私の見解のスクリーンプリントです:

ここに画像の説明を入力してください

注:グラフの下の表では、モジュール[ ビューのマージ行]を使用しており、最初の2つのスクリーンプリントの表形式表示に示されているように、上位2つの日付に「0失敗」または「0合格」が表示されていないことは明らかです正しいチャートを表示する必要がありました。

編集:私はここここで同じ問題を見つけました。それが役に立てば幸い。

2番目のリンクのような解決策が必要な場合、つまり、両方のシリーズが常にすべてのラベルを持つようにビューを作成する必要がある場合は、私はそれを受け入れます。

回答:


1

ステップ1

グラフを正しく表示するのが「唯一の」問題かどうかはわかりませんが、問題の一部は、データに「穴」があり、Issue nr 2052429のComment nr 12で詳しく説明されているのと同様です

問題について

「穴」に関するその問題のすべてが何であるかを理解するには、これらのデータをグラフ化することを検討してください。

ここに画像の説明を入力してください

タイプArticleWebformの場合、Published = Noの行はないことに注意してください(つまり、これらのタイプの非公開ノードはありません)。したがって、このシナリオでは、いわゆる「穴」が2つあります...それが問題の始まりでした。

  • 問題1:これらのデータの縦棒グラフは次のようになります。

    ここに画像の説明を入力してください

    「記事」のバー(値1)は間違っています。そのバーは実際には、未公開の「ブックページ」の値1に関連しています。そして、「ブックページ」のバー(値2)は、実際には2つの非公開の「ベーシックページ」のバーである必要があります。

  • 問題2:これらのデータの折れ線グラフは次のようになります。

    ここに画像の説明を入力してください

    この場合、「未公開」の行にも同様の問題があります。したがって、作成するグラフのタイプは関係ありません。すべてのグラフにこの問題があります。

この問題を解決する方法

最初に最新のDevバージョンにアップグレードします(現在のrc1バージョンよりもはるかに優れている/安定しています)。次に、上記の問題のコメントに添付されているパッチを適用し、それがあなたのケースで役立つかどうかを確認します。そうでない場合は、それが確実に前提条件であることを確認してください(そのパッチがないと、機能させることができません)。注意:このパッチは、最新の開発バージョンにはもう適用されないようです。これを(再び)機能させるには、上記のパッチを使用せずに、課題nr 2052429のコメントnr 31に添付されている再ロールパッチを使用してください

この修正を適用した後の、上記の同じ縦棒グラフは次のようになります。

ここに画像の説明を入力してください

そして、これは対応する折れ線グラフです:

ここに画像の説明を入力してください

...これは、上記の表形式のデータと完全に一致するグラフだと思います。

ステップ2

最新のdevバージョンにアップグレードしてパッチを適用するだけでは不十分な場合は、有効にしたViews Merge Rowsモジュールを(一時的に)無効にすることをお勧めします。(一時的に)ビューを変更して、PASSEDとFAILEDの値を2つの別々の列として表示します。そして、正しい結果が得られるかどうかを確認します。このようにして、このViews Merge Rowsモジュールが原因であるかどうかを確認できます(サポートリクエストを解決することは、考えられるすべての原因を1つずつ取り除くようなものです...)。

ステップ3

手順2でも問題が解決しない場合は、手順の「ボーナスヒント」に記載されているビューUIを使用してグラフを作成することをお勧めします

データを設定した後、「表」表示から始めてそれをグラフ表示に変換する方が簡単な場合があります。最初に表に配置すると、グラフの結果を簡単に視覚化できます。

つまり、グラフを作成する前に、表形式のバージョンで正しいデータが表示されていることを確認してください。

ステップ4

前の手順のいずれも役に立たない場合は、次のようにビューを修正して、得られた結果を確認することができます。

  • 同じビューに別のディスプレイを作成します。たとえば、「Runs Chart(Total)」という名前を付けます。これは、「Runs Chart(Passed)」のすべての仕様と同じである必要がありますが、「Content:Test Case Run Status(Passed)」フィルターはありません。明らかに、それは実行の合計(成功と失敗の両方)を反映します。私はそれを「折れ線グラフ」にします(しかし、それは個人的な好みの問題です)。
  • Runs Chart(Passed)」の「Chart settings」を変更して、「Runs Chart(Total)」を親グラフとして使用するようにします。
  • Runs Chart(Passed)」の代わりに「Runs Chart(Total)」を親チャートとして使用するように、「Runs Chart(Failed)」の「Chart settings」を適合させます

手順5

手順4の回避策が回避策として役立つ場合は、チャートの背景に一致する折れ線チャートの色(白などを使用して、「Runs Chart(Total)」のチャート設定をさらに調整することができます。 )。「レジェンド」などの設定に似ていると思われます(たとえば、 

開示:私はChartsモジュールの共同メンテナーです(そのコミュニティのドキュメントの作成者です)。
これが自己宣伝に関するサイトのポリシーに違反しないことを願っています。


こんにちはピエール、私はすでにこれらの3つのステップを試しました。前に言ったように、問題はモジュールの実装方法です。X軸は常に親グラフのラベルの数に依存します。
ゼフィラス2015年

私は「ステップ4」を追加しました...それがあなたのケースでそれを機能させるのに役立つかもしれないかどうか知りたい...私に知らせて、いいですか?
Pierre.Vriens 2015年

こんにちはピエール、ステップ4は良い回避策ですが、それでもまだすべてを解決するわけではありません。このステップでは、親チャートにすべてのx軸ラベルがあるため、データに「穴」はありません。しかし、それは代償を伴います:私は見せたくないラインと伝説を持っています。ステータスフィールドをカウントする代わりに、合計することができます。線は表示されませんが、それでも凡例があります。結論:これは良い回避策であり、解決策ではありません。ご協力ありがとうございました。
ゼフィラス2015年

ステップ4についての素晴らしいニュース!私の回答を(多かれ少なかれ)許容できるものと見なすためにもう1回試行しました...おそらく、今から数時間以内に賞金を「Drupal.SEゴミ箱」に移動させないことも役立つでしょうか?
Pierre.Vriens 2015年

こんにちは、ピエール。ステップ5について。線の色を変更することは解決策ではありません。グラフの高さはラインを表示するように調整され(表示されていなくても)、データラベルがある場合は表示されます。回避策に関する私のコメントは、実際にはこれまでのところ最高の解決策です。これに対する最終的な解決策は、モジュールコードを変更することによって行われる必要があります。他に方法はありません。将来可能になるはずのことの1つは、親グラフとアドオングラフの両方の設定を持つことです。それが現時点で最高なので、私はとにかく5つのステップであなたの解決策を受け入れます。
ゼフィラス2015年

0

あなたがしなければならないことは、両方のシリーズが常にすべてのラベルを持つようにビューを構築することだと思います。

これを行うには、「数0を空としてカウントする」フィールドがオフになっていることを確認するだけです。このフィールドを見つけるには、カウントしているフィールド名をクリックして、その構成オーバーレイを表示します。[結果の動作なし]を選択し、[0を空としてカウントする]チェックボックスがオフになっていることを確認します。[空の場合は非表示]もオフにする必要があります。

それで問題は解決しましたか?そうでない場合は、ビューをエクスポートして投稿するか、少なくとも信頼できるフィールドに関するセクションを作成しておくと役立ちます。


こんにちはエリン、それは問題を解決しません。次のような3つのノード(x、y)があるとします:[a、1] [a、2] [c、3]。ビューでグラフを作成する場合、「b」ラベルは何があっても表示されません。ソリューションはチャートで作成する必要があります。ラベルa、b、dがあるグラフタイプの最初の表示がある場合。次に、グラフアドオンタイプの2番目の表示を作成し、データにラベルa、c、dのみがある場合、最終的なグラフには最初の表示で定義された3つのラベルのみが含まれます。この問題には回避策がありますが、データベースに追加フィールドを作成することを意味します。
ゼフィラス2015年

おお、私はその質問を完全に誤解した。ごめんなさい!
Erin McLaughlin

ここでは、この問題の良い説明もあります。悲しいことに、今のところ解決策はない:(
zephirus '28 / 10/28

残念ながら、それは修正するためにモジュールへのパッチを必要とするもののように見えます。
Erin McLaughlin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.