問題タブ [qcustomplot]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - ティック間隔を変更して 1 時間単位を使用する
だから私はqcustomplotのx軸に時間をプロットしようとしています...私の問題は、x軸の「目盛り」を1時間の間隔(00:00、01:00、 02:00...など)。私のコードと結果は次のとおりです。
コード:
結果:
c++ - boost::gregorian::time を double として UNIX タイムスタンプに変換
簡単な背景:
QCustomPlotバージョン 1.3 ベータ版を使用して、株式のローソク足チャートをプロットしようとしています。ライブラリのコードをスキップしたところ、時系列では type-def が使用されていることがわかりました (qcustomplot.h:line 3140)。
QCPFinancialDataの場所(qcustomplot.h:line 3124)
したがって、OHLC データは明らかにそこにあり、クラスは QMap で使用されるキーを使用して時系列エントリのインデックスを作成します。
したがって、明らかなキーは日付と時刻になります (私は End-Of-Day チャートをプロットしているので、各エントリは単に日付であり、時間が使用されていません)。私の解析コードでは、私は使用しました
非常に多くの利点があります(文字列からの変換、経過した日時の計算など)。
質問は、単純に boost::gregorian::date を UNIX タイムスタンプに変換し、そのタイムスタンプを double として記録する必要があるかどうかです。github でtime_t型に変換する小さなテンプレート関数を見つけましたが、この場合 double は問題にならないと思いますか、それとも潜在的なバグですか? 私の知る限り、Unix のタイムスタンプは 1970 年 1 月 1 日からの秒数を示します。
QCustomPlot の例では、タイムスタンプではなく、時系列シーケンスの開始 (開始日など) からのアキュムレータ/カウンターを使用しています。
c++ - QCustomPlot 変数へのアクセス
要するに:
WidgetClass で QCustomPlot 変数にアクセスする必要があります。しかし、そのコンテキストではプライベートであるため、できません。これはどのように達成されますか?
私がやった事:
グラフを作成するクラスとグラフ クラスを呼び出すウィジェット クラスがあります。私の QCustomPlot 変数は、グラフ クラスで宣言されているプライベート変数ですが、ウィジェット クラスでこの変数にアクセスする必要があります。
データを取得してデータをグラフ クラスに渡す generate_graphs スロットがあり、そこからグラフが作成されます。私はpngに保存しているので、このデータでグラフ変数にアクセスする必要があります。変数は、グラフを生成するグラフクラスを呼び出すWidgetClassのデータに渡されます。
グラフ クラス変数 (Widget クラス内) は次のように宣言されGraphWidget* graph
ています: そのスロットの QCustomPlot 変数に次のようにアクセスしようとしています: 次のようなgraph->QCustomPlot->savePNG()
エラーが表示され続けます。QCustomPlot* GraphWidget::QCustomPlot is private within this context
次に、を返すだけの関数を作成してGraphWidget* graph
、グラフ クラスでその変数にアクセスできるようにしました。代わりに、そのコンテキストでプライベートにならずに QCustomPlot 変数にアクセスできました。GraphWidget* graph
GraphWidget クラスで宣言されていない を渡す必要があるため、これによりエラーが発生しました。
c++ - QCustomPlot QCPItemLine
qcustomplotについて質問したいです。Sliderに従ってitemLineの位置を変更するにはどうすればよいですか? (x = a のように)
c++ - QCustomPlotで大規模な時系列を効率的にプロットするには?
現在、Qt でデジタル信号をプロットしてQCustomPlot
いますが、サンプル数が 10000000 を超えると、操作が非常に遅くなるようです。time
ベクトルとベクトルがdata
あり、データを次のように設定しています。
これをより効率的にするチャンスはありますか?
c++ - QCustomPlot、動的ベクトルからのプロット
私はtxtファイルからいくつかのデータをプロットしています。そして、水平と垂直のスライダーに合わせて変更しています。上部の horizontalSlider と下部の verticalSlider 領域を再プロットしたい。これを行うには、horizontalSlider に従ってベクターのサイズを変更しようとしています。したがって、 horizontalSlider の値が変わります。このベクトルの値を 0 から horizontalData まで使用するにはどうすればよいですか?
c++ - std::map で使用するカスタム アロケータを実装する方法は?
で使用するカスタム アロケータを実装する方法について、いくつかの指針を探していますstd::map
。コンテナー内の各要素に割り当てを行わずに、何百万ものエントリをマップに取り込むことに興味があります (これは、このコンテナーの既定値です)。この理由は、マップを使用してグラフのサンプルを格納しているサードパーティのライブラリ (QCustomPlot) にデータを渡すためであり、大きな時系列をプロットするときにパフォーマンスが低下したと感じています。
std::map
のサイズが事前にわかっている場合、1 回の割り当てでこれを行うことは可能ですか?
編集: ノードはコンテナーに昇順で供給されます。
c++ - QCustomPlot/Widget にグラフ/更新が表示されない
左ペイン(ツリービュー)をクリックするとグラフがQSplitter
表示される右ペインの場所を使用しています。QCustomPlot
問題は、スプリッターのサイズを変更するまで、グラフが表示されないか、更新されないことです。私はQtのサンプルコードを使用しています:
もちろん、コンストラクターでこの関数を呼び出すと(例のように)プロットが表示されますが、ボタンをクリックしてこれを呼び出すと表示されません。
この関数を呼び出したときにグラフがプロットされるようにするにはどうすればよいですか?
c++ - QCustomPlot は Linux で間違った曲線を作成します
QCustomPlot で曲線を描いています。
現在、Windows と Linux マシンで、私のコードは正常に動作します。
Ubuntu のバージョン:ここ(Windows は同じように見えます)
同僚のマシンのバージョン:ここ
私の同僚は Linux MINT を実行しています。
私の同僚の Linux マシンでは、突然、それができなくなりました。線はすべてスパイクになり、緑のプロットは 1 つの大きなスパイクになり、赤い線は平らな線に変わります。
コードは非常に簡単で、次のようになります。
(Modes は、プロットしているデータです。これらのウィンドウのそれぞれが 1 つのモードです。) (current は、作業中のプロットへのポインターです) (Stations は、モード内の何かであり、基本的には x のステーションです。データがある軸, currentMode.x はそれらの場所でプロットしているデータです. プロットの y 値として x 値をどのように使用するかについて少し混乱するかもしれませんが, それは正しいです. 私は基本的にx、y、z の値を経時的にプロットし、測点または dataX をタイムステップにしています。)
これは、写真にある 3 つの曲線のそれぞれについて 3 回続きます...