Q&A
テーマ、知りたいこと
x軸データとy軸データの並びがセットされているtextファイルの組が100組ほどあります。
これを折れ線グラフ化して次のような条件で印刷したいのですが、どんな手段があるか相談したいです。
背景、状況
条件
・各グラフのy軸は一定範囲にあるが、x軸は16倍ほどのスケーリング範囲にある。
・グラフは横長で、横幅は一定の幅で揃える。x軸でスケーリングする。
・横幅一定のグラフを、縦にできるだけ長く、用紙当たり一定の数で何枚かの用紙にプリントする。
・データの条件によって、折れ線の一部に色とかマークをつけたい。
・元データの出所は、C++になりますが、ファイル渡しで、plot、プリントは別処理でよい。
想定した手段
・なにか適当なグラフ描画ツールを使う。
・GNUplot
・C++のchartクラス
・Pythonのグラフ機能
いずれも、ゼロからつくるのでなくサンプルなどを探してなんとかできるかなと思いますが、3番目、4番目の条件をどのようにクリアできるかで、
難易度が変わるかと思います。
他の手段を含めて、どんな手段が簡単でしょうか。当人のスキルによりますのが、アイデアを頂ければ幸いです。
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
下記のような質問は推奨されていません。
- 質問になっていない投稿
- スパムや攻撃的な表現を用いた投稿
適切な質問に修正を依頼しましょう。
回答20件
#1
総合スコア17927
投稿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
#2
総合スコア10059
投稿2023/03/05 06:17
・横幅一定のグラフを、縦にできるだけ長く、用紙当たり一定の数で何枚かの用紙にプリントする。
プロッターを使用すれば「縦にできるだけ長く」が実現できそうですが、プリンターの制約はあるのでしょうか?
想定した手段
・なにか適当なグラフ描画ツールを使う。
・GNUplot
・C++のchartクラス
・Pythonのグラフ機能
質問者さんが精通している方法をまずは試すのが良いかと思います。
「なにか適当なグラフ描画ツール」については有料/無料の制約等有りますか?
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
#3
#1 ご紹介ありがとうございます。
面白そうなので、概要でもみようかと思いましたが、
その段階で、色々前準備が要りそうで(UNPKGなど)、概要もつかみかねています。
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
#4
#2 ご返事ありがとうございます。
さすがにプロッターはないですが、A4でプリントし、離れてプリントせざるを得ない場合は、そのままでもよしとします。
この課題には無料ベースです。
そうですね、自分がやれそうなところをやるのがもっともなことですね、
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
#5
総合スコア787
投稿2023/03/05 09:13
確認できてない妄想です。
- C++でcsv出力
- pythonのpandasで読み込み、matplotlibでplotしたデータをsvg出力
- svgにしたデータをpdfでポスター印刷出力(←ここは探す)
- pdfを印刷
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
#6
総合スコア787
投稿2023/03/05 09:13
確認できてない妄想です。
- C++でcsv出力
- pythonのpandasで読み込み、matplotlibでplotしたデータをsvg出力
- svgにしたデータをpdfでポスター印刷出力(←ここは探す)
- pdfを印刷
pythonならpandas(使ったことないですが、聞いたことはあります)でスケーリングまでやるのでしょうか。
matplotlibからは、直接プリントはできず、PDFにしたほうがベターなのですね。
参考になります。
ただ処理プラットホームが増えますね。txt(csvも)を読んで、 っプロットまでできるとよいですが、いろんな情報を付加するのが難しいですか。
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
#7
総合スコア787
投稿2023/03/05 10:15
pandas(使ったことないですが、聞いたことはあります)でスケーリングまでやるのでしょうか
スケーリングって何ですか?目盛りを打つこと?何倍かすること?それ以外の意味?
アイデア募集でないなら質問を取り下げてください。
回答する気はないので、自分で調べましょう。
matplotlibからは、直接プリントはできず、PDFにしたほうがベターなのですね
印刷したいと思ったことがないので印刷できないかどうか知りませんが、pdfならプリンタに依らず汎用です。
処理プラットホームが増えますね
増やしたつもりないですけど。
いろんな情報を付加するのが難しい
svgは編集できるし、文書に取り込むことも可能です。その文書をpdfに印刷して、それをさらにpdfでポスター印刷出力してもいいと思います。まあそもそもX軸の範囲を分けてグラフ自体を複数にした方が見やすい気もしますが。
全体的にやりたいこともアバウトにしか決まっておらず、実現手段の調査も不十分で、自分でやったことがあることもほとんどなさそう、だと、「そもそも(あなたに)出来るの?」という疑問が中心にあってアイデア以前の気もします。
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
#8
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
#9
皆様からいろいろな意見を頂きましたので、このあたりで、終了にしたいとおもいます。ありがとうございました。
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
#10
総合スコア787
投稿2023/03/05 11:34
質問ではまだ漠然としている
なら、明確にまずいです。意見をうかがう以前の話で、マッチするかどうかの判断などできない状態ですよ。
最低でも他人に聞くなら、アイデアを聞いた以上、全てに「簡単な」サンプルコードを書いて提出くらいの意気込みはほしいですね。可能であれば即日です。それくらいの実力があれば、やりたいことが不明確でも、柔軟に取捨選択可能かと思います。
やりたいこともハッキリしておらず、できることもほとんどないのに、アイデアだけ聞いて取捨選択とか無理ではないですか?おんぶにだっこでやってもらってるだけになってしまいます。
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
#11
総合スコア787
投稿2023/03/05 11:34
質問ではまだ漠然としている
なら、明確にまずいです。意見をうかがう以前の話で、マッチするかどうかの判断などできない状態ですよ。
最低でも他人に聞くなら、アイデアを聞いた以上、全てに「簡単な」サンプルコードを書いて提出くらいの意気込みはほしいですね。可能であれば即日です。それくらいの実力があれば、やりたいことが不明確でも、柔軟に取捨選択可能かと思います。
やりたいこともハッキリしておらず、できることもほとんどないのに、アイデアだけ聞いて取捨選択とか無理ではないですか?おんぶにだっこでやってもらってるだけになってしまいます。
今回のような内容では、まだ具体的なプログラムではないので、質問にはできなかったのですが、掲示板の趣旨に添わなかったのであればお詫びします。今後注意いたします。
翻って、今回の場合ではteratailではどんなことが可能ですか。
すべての方法を試してからでは、効率が悪いので、そのように考えました。
アイデアだけ聞いて取捨選択とか無理か否かは当方で考えることだと存じますが。
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
#12
総合スコア787
投稿2023/03/05 12:33
編集2023/03/05 12:34効率が悪いのはあなただけであって、私たちはあなたの効率を上げるために意見を述べたり回答してるわけではありません。そもそも私たちはあなたのために「時間を割いて」おり、効率が悪いんですけどね。あなた以外の人間があなたのための道具か何かなら、或いは対価を支払っているならそう考えるのもいいのですが、実際にはそうではありません。
アイデアだけ聞いて取捨選択ができるというのは、ちゃんとそれらを聞いて具体的に検討し、比較吟味した上で、目的とする条件を(場合によっては動かしながら)満たすか否かを判断できるという前提がないと成立せず、全てを他人に頼るあなたの実力ではとてもじゃないけど成立しないのですよ。
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
#13
総合スコア787
投稿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です。
最後に
アイデアを元にこういうサンプルをサクサク作れることが大事。
比較・検証が出来ないので。
細かいことは気にしないでいい。
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
#14
総合スコア13521
投稿2023/03/06 08:37
R言語+tidyverseか、python+pandasのどちらかが実際的でしょう。挙げられているような細かい調整をしつつグラフを画像ファイルとして出力するところまで確実に出来ることだけは確かです。
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
#15
#13 dameoさん
ご丁寧に(手間をかけていただいて)ポスターツールを説明ありがとうございます。
SVg(なにかはわかりませんが)も使えば編集などもできるのでしょうが、
ポスターツールのビデオガイドも少し見ましたが、全体の作業が必要性に対して、少々学ぶことが多そうです。
従いまして、候補からは除かせていただきます。
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
#16
#14kojidoiさん
やるとしますと、この中ではやはりpython+panndasがなじめそうです。
ご意見ありがとうございます。
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
#17
#2megさん
このスレッドを閉じたいのですが、ベストアンサーを選ぶ必要があるようですが、方法がわかりません。
<質問者さんが精通している方法をまずは試すのが良いかと思います。>
いろいろ皆さんからご意見を伺いましたが、やはり、これに尽きるかと思い、ベストアンサーにしたいのです。
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
#18
総合スコア787
投稿2023/03/07 06:35
総合スコア122
投稿2023/03/07 06:12
#13 dameoさん
ご丁寧に(手間をかけていただいて)ポスターツールを説明ありがとうございます。
SVg(なにかはわかりませんが)も使えば編集などもできるのでしょうが、
ポスターツールのビデオガイドも少し見ましたが、全体の作業が必要性に対して、少々学ぶことが多そうです。
従いまして、候補からは除かせていただきます。
適当だからほとんど手間はかかってません。ただ内容は何一つ伝わっていないようですね。
全てを他人に頼るあなたの実力ではとてもじゃないけど
取捨選択は無理ですよ。あなたの好みと勘と気分でどうするか?という誰のためにもならない話ではなく、あくまで対象のスキルレベルに応じて、条件を満たす手段をアイデアから選択するための意見交換の場なんですよ。
一言で言えばあなた以外の誰かのためになる情報でないといけません。そのためには「具体的に検討し、比較吟味」が必要です。最低限同じレベルの比較対象がなければ、不可能な話なわけです。そしてアイデアからそこまで昇華する責任があるのは質問者である、「あなた」になります。他の人に聞いてるのはアイデアだけなのでね。
ご理解頂けましたか?
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
#19
総合スコア13521
投稿2023/03/07 06:39
総合スコア122
投稿2023/03/07 06:20
#2megさん
このスレッドを閉じたいのですが、ベストアンサーを選ぶ必要があるようですが、方法がわかりません。
<質問者さんが精通している方法をまずは試すのが良いかと思います。>
いろいろ皆さんからご意見を伺いましたが、やはり、これに尽きるかと思い、ベストアンサーにしたいのです。
Q&Aと違い、意見交換は質問者の側からクローズできないようです。ベストアンサーは選べないし、選ぶ必要もありません。
https://teratail.com/help#about-discussion-closed
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
#20
総合スコア13521
投稿2023/03/07 06:39
Q&Aと違い、意見交換は質問者の側からクローズできないようです。ベストアンサーは選べないし、選ぶ必要もありません。
https://teratail.com/help#about-discussion-closed
システムを理解しておらず、安易に投稿してしまいました。お詫びします。
それではやむを得ませんので放置せざるをえないですね。
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
関連した質問
意見交換
受付中
ファイル名にどの区切り文字を使うか
回答3
クリップ0
更新
2023/06/02
意見交換
受付中
Python経験2年からゲームプログラマーになるためには
回答18
クリップ2
更新
2023/05/31
意見交換
クローズ
プログラミングの設計が分からない
回答24
クリップ11
更新
2023/04/17
Q&A
解決済
Javaの外部ライブラリが使えない
回答1
クリップ0
更新
2023/05/30
意見交換
受付中
大規模言語モデル ファインチューニングの方法
回答4
クリップ0
更新
2023/06/02
意見交換
受付中
Wordpressのphpファイルにデータベースの接続情報を直接記入しても大丈夫なのでしょうか。
回答39
クリップ3
更新
2023/05/25
意見交換
受付中
データ分析、機械学習や人工知能にPythonが使われている理由に関して。
回答9
クリップ2
更新
2023/06/01
同じタグがついた質問を見る
VC++ (Visual C++) とは、Microsoft製のC++のための統合開発環境です。
gnuplot(ニュープロット)は、2次元や3次元のグラフ作成ができるソフトウェアです。さまざまな数式やデータ集計などのグラフを描写することが可能で、特に2次元グラフを描画する機能は強力です。
Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。