Qwt を 2 年間使用しています。オブジェクト指向のクラスが気に入っています。これにより、プロットと機能を非常に簡単に適応させることができます。最近では、QCustomPlot の人気がますます高まっており、Qwt と競合しています。もちろん、API を比較しました。ただし、両方の図書館の経験豊富なユーザーの証言に興味があります。何が便利?なに?落とし穴はありますか?
4 に答える
Qwt を数か月しか使用せず、QCustomPlot を数週間しか使用しなかったので、自分自身を「経験豊富」とは言いません。そうは言っても、私の印象は次のとおりです。
- 現在、QCustomPlot はより活発に開発されているようです。最後のリリースは 2012 年 8 月でした (Qwt の最後のリリースは 2011 年にさかのぼります)。主観的には、そのインターフェイスは Qt フレームワークとより「一致」しているように見えます。
- 一方、Qwt はより成熟していて機能が充実しているようです。たとえば、QCustomPlot の現在のリリースでは、軸の四角形の背景色を設定する簡単な方法はありません (背景の設定は、ユーザーが指定したピックスマップのみがサポートされています)。別の例 - Qwt には、非常に多数のポイントを持つ曲線のプロットとズームインとズームアウトを容易にする特別なクラスとメソッドがあります。QCustomPlot でそのようなものは何も見つかりませんでした。
編集: QCustomPlot の作成者は、プロットの背景を設定する機能が欠落していることを認識しており、次のリリースで追加することを約束しています。
QCustomPlot と Qwt の間にはもう 1 つの重要な違いがあります - ライセンスです。- Qwt は LGPL であるため、非 GPL プロジェクトにリンクできます。QCustomPlot は GPL v.3 であり、多くの人 (私自身を含む) は制限が厳しすぎると感じています。QCustomPlot の作成者は、LGPL ライセンスが必要な場合は、彼に連絡するよう招待しています。
EDIT2 (2013 年 3 月 25 日): Qwt ブランチ 5.* および 6.* の新しいリリースが 11 月に登場し、QCustomplot の「より積極的に開発された」利点が無効になります。
私は QCustomPlot しか使用していないため (現在は 1 年間)、両方のライブラリを比較することはできませんが、それでも私のコメントは他の人にとって役立つと思います。
QCustomPlot の長所:
- Gitorious で一般公開されている、
- 喜んで助けてくれる生きているユーザーベース(作者自身を含む)、
- LGPLライセンスへの開放性(私の場合、寄付と引き換えに)、
- 非常にクリーンで簡潔なインターフェース、
- バグが存在する場合、バグを見つけるのは非常に簡単です (私のバグ修正はめったに 1 行より長くなりませんでした)
- 簡単に拡張できます。
- デカルトプロットライブラリから壊したいものに非常にハッキングできます。
- 良いドキュメンテーション、
- 1 つの .h ファイルと 1 つの .cpp ファイルの圧縮形式で利用可能 - 迅速な統合または専用の 1 つのウィジェットに便利です。
- 非常に優れたパフォーマンス (私のすべてのユースケースで)、
- 作者が素敵なコードを好み、それを作成できることは明らかです。
- 非常によく考え抜かれたロードマップ (長い間)。
QCustomPlot の短所:
- 非常に厳密にデカルト (読み取り: 円グラフなし)、
- 私の場合、すべての重要なことを把握するのに時間がかかりました (基本に匹敵する品質の拡張機能を実装したい場合)。
- 少しゆっくりとした進化かもしれません (他の多くの一人で忙しいプロジェクトと同様)。
- メイン スレッドでのみ使用できます (たとえば、マルチスレッド Web サーバーで画像を生成する必要がある場合は、このライブラリをメイン スレッドで実行する必要があります)。
LGPL っぽいライセンスが必要な場合は、無料のオプションがない場合があります (作成者の考慮事項によって異なります)。ライブラリの品質と使いやすさを考えると、私の会社が LGPL ライセンス契約と引き換えに行った寄付は不当ではありませんでした。
長所:
- 簡単に始められる IMO (API は直感的で、よく文書化されています)
- パンとズーム時の良好なプロット品質と高速応答。
- 単一の .h/.cpp ファイル (つまり、QT 以外のコンパイル済みライブラリを参照する必要はありません)
短所:
- GPL (LGPL ではない)
double
必要なだけの場合でも、データポイントごとに6 秒を格納するデータ構造を内部的に使用しX
ます。Y
- 内部的には、 を使用し
QMap
てデータ ポイントを格納し、それらを並べ替えます。パンとズームには非常に効率的ですが、サンプル数が多い場合 (例: 1,000,000 データ ポイント) には入力が非常に遅くなります。