0
0
テーマ、知りたいこと
x軸データとy軸データの並びがセットされているtextファイルの組が100組ほどあります。
これを折れ線グラフ化して次のような条件で印刷したいのですが、どんな手段があるか相談したいです。
背景、状況
条件
・各グラフのy軸は一定範囲にあるが、x軸は16倍ほどのスケーリング範囲にある。
・グラフは横長で、横幅は一定の幅で揃える。x軸でスケーリングする。
・横幅一定のグラフを、縦にできるだけ長く、用紙当たり一定の数で何枚かの用紙にプリントする。
・データの条件によって、折れ線の一部に色とかマークをつけたい。
・元データの出所は、C++になりますが、ファイル渡しで、plot、プリントは別処理でよい。
想定した手段
・なにか適当なグラフ描画ツールを使う。
・GNUplot
・C++のchartクラス
・Pythonのグラフ機能
いずれも、ゼロからつくるのでなくサンプルなどを探してなんとかできるかなと思いますが、3番目、4番目の条件をどのようにクリアできるかで、
難易度が変わるかと思います。
他の手段を含めて、どんな手段が簡単でしょうか。当人のスキルによりますのが、アイデアを頂ければ幸いです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答20件
#1
退会済みユーザー
総合スコア0
投稿2023/03/05 03:57
.NET Framework の Windows Forms および ASP.NET Web アプリ用であれば Chart というのがあります。
興味があれば、Windows Forms 用ならサンプル(上の画像がそれ)を入手できるので試してみてはいかがですか? 詳しくは以下の記事を見てください。
Windows Forms 用 Chart Samples
http://surferonwww.info/BlogEngine/post/2021/11/30/chart-samples-for-windows-forms-application.aspx
#5
退会済みユーザー
総合スコア0
投稿2023/03/05 09:13
確認できてない妄想です。
- C++でcsv出力
- pythonのpandasで読み込み、matplotlibでplotしたデータをsvg出力
- svgにしたデータをpdfでポスター印刷出力(←ここは探す)
- pdfを印刷
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#7
退会済みユーザー
総合スコア0
投稿2023/03/05 10:15
pandas(使ったことないですが、聞いたことはあります)でスケーリングまでやるのでしょうか
スケーリングって何ですか?目盛りを打つこと?何倍かすること?それ以外の意味?
アイデア募集でないなら質問を取り下げてください。
回答する気はないので、自分で調べましょう。
matplotlibからは、直接プリントはできず、PDFにしたほうがベターなのですね
印刷したいと思ったことがないので印刷できないかどうか知りませんが、pdfならプリンタに依らず汎用です。
処理プラットホームが増えますね
増やしたつもりないですけど。
いろんな情報を付加するのが難しい
svgは編集できるし、文書に取り込むことも可能です。その文書をpdfに印刷して、それをさらにpdfでポスター印刷出力してもいいと思います。まあそもそもX軸の範囲を分けてグラフ自体を複数にした方が見やすい気もしますが。
全体的にやりたいこともアバウトにしか決まっておらず、実現手段の調査も不十分で、自分でやったことがあることもほとんどなさそう、だと、「そもそも(あなたに)出来るの?」という疑問が中心にあってアイデア以前の気もします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#10
退会済みユーザー
総合スコア0
投稿2023/03/05 11:34
質問ではまだ漠然としている
なら、明確にまずいです。意見をうかがう以前の話で、マッチするかどうかの判断などできない状態ですよ。
最低でも他人に聞くなら、アイデアを聞いた以上、全てに「簡単な」サンプルコードを書いて提出くらいの意気込みはほしいですね。可能であれば即日です。それくらいの実力があれば、やりたいことが不明確でも、柔軟に取捨選択可能かと思います。
やりたいこともハッキリしておらず、できることもほとんどないのに、アイデアだけ聞いて取捨選択とか無理ではないですか?おんぶにだっこでやってもらってるだけになってしまいます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#11
総合スコア127
投稿2023/03/05 12:00
編集2023/03/05 12:03#10
今回のような内容では、まだ具体的なプログラムではないので、質問にはできなかったのですが、掲示板の趣旨に添わなかったのであればお詫びします。今後注意いたします。
翻って、今回の場合ではteratailではどんなことが可能ですか。
すべての方法を試してからでは、効率が悪いので、そのように考えました。
アイデアだけ聞いて取捨選択とか無理か否かは当方で考えることだと存じますが。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#12
退会済みユーザー
総合スコア0
投稿2023/03/05 12:33
編集2023/03/05 12:34#11
効率が悪いのはあなただけであって、私たちはあなたの効率を上げるために意見を述べたり回答してるわけではありません。そもそも私たちはあなたのために「時間を割いて」おり、効率が悪いんですけどね。あなた以外の人間があなたのための道具か何かなら、或いは対価を支払っているならそう考えるのもいいのですが、実際にはそうではありません。
アイデアだけ聞いて取捨選択ができるというのは、ちゃんとそれらを聞いて具体的に検討し、比較吟味した上で、目的とする条件を(場合によっては動かしながら)満たすか否かを判断できるという前提がないと成立せず、全てを他人に頼るあなたの実力ではとてもじゃないけど成立しないのですよ。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#13
退会済みユーザー
総合スコア0
投稿2023/03/05 14:56
サンプル
svgはすっ飛ばしましたが、気象庁が出している地震データのプロットをして、A4縦を横に16枚並べるポスター印刷用pdfを出力させてみました。
csvファイルのダウンロード
https://www.data.jma.go.jp/eqev/data/kyoshin/jishin/1806180758_osakafu-hokubu/index.html
から
https://www.data.jma.go.jp/eqev/data/kyoshin/jishin/1806180758_osakafu-hokubu/data/acc20180618000177029.csv
をダウンロードしてください。
pipでパッケージインストール
cmd
1pip install pandas matplotlib pdftools.pdfposter
※必要ならvenvなどの仮想環境からインストールしてください
csvのプロットと横長pdfの生成
python
1# pip install pandas matplotlib pdftools.pdfposter 2# https://www.data.jma.go.jp/eqev/data/kyoshin/jishin/1806180758_osakafu-hokubu/index.html 3# https://www.data.jma.go.jp/eqev/data/kyoshin/jishin/1806180758_osakafu-hokubu/data/acc20180618000177029.csv 4import pandas as pd 5import matplotlib.pyplot as plt 6df = pd.read_csv('acc20180618000177029.csv', skiprows=6, encoding='cp932') 7df.plot(figsize=(133, 12)) 8plt.subplots_adjust(left=0.01, right=0.99, bottom=0.05, top=0.95) 9plt.savefig('image.pdf') 10# pdfposter -p 16x1a4 image.pdf out.pdf
image.pdfが横長pdfです。
ポスター印刷用pdfの生成
cmd
1pdfposter -p 16x1a4 image.pdf out.pdf
out.pdfがポスター印刷用pdfです。
最後に
アイデアを元にこういうサンプルをサクサク作れることが大事。
比較・検証が出来ないので。
細かいことは気にしないでいい。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#18
退会済みユーザー
総合スコア0
投稿2023/03/07 06:35
#15
適当だからほとんど手間はかかってません。ただ内容は何一つ伝わっていないようですね。
全てを他人に頼るあなたの実力ではとてもじゃないけど
取捨選択は無理ですよ。あなたの好みと勘と気分でどうするか?という誰のためにもならない話ではなく、あくまで対象のスキルレベルに応じて、条件を満たす手段をアイデアから選択するための意見交換の場なんですよ。
一言で言えばあなた以外の誰かのためになる情報でないといけません。そのためには「具体的に検討し、比較吟味」が必要です。最低限同じレベルの比較対象がなければ、不可能な話なわけです。そしてアイデアからそこまで昇華する責任があるのは質問者である、「あなた」になります。他の人に聞いてるのはアイデアだけなのでね。
ご理解頂けましたか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#19
総合スコア13692
投稿2023/03/07 06:39
Q&Aと違い、意見交換は質問者の側からクローズできないようです。ベストアンサーは選べないし、選ぶ必要もありません。
https://teratail.com/help#about-discussion-closed
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。