2008-10-18 43 views
18

在C++中繪製散點圖的最佳方式是什麼?C++中的散點圖

您是否將數據寫入文件並使用其他工具? Python中是否有像matplotlib這樣的庫?

+0

檢查http://stackoverflow.com/a/40612989/2192115 – SAAD 2016-11-15 15:26:07

回答

27

我總是寫出數據,然後使用gnuplot來創建我的圖。這是迄今爲止我所發現的以各種格式生成圖形的最佳方式:eps,png,jpeg,xpm,您可以將其命名。

gnuplot很容易做散點圖。提供的xy值是2的空間分隔columnss,然後

plot "data.txt" using 1:2 

會給你一個快速的散點圖。然後你可以調整它,以及不使用其他gnuplot命令。

如果您涉足科學,那麼學習gnuplot將對您非常有價值。它肯定會讓玩家無法理解excel地塊,並且可以簡化製作包含在論文中的地塊的任務。

4

這當然不是最好的方法,但我通常會編寫可以通過R讀取的輸出文件,並使用它和適當的腳本來繪製圖形。

11

如果你正在尋找一個C++庫,而不是像gnuplot的我獨立的繪圖工具,我會考慮以下幾點:

DISLIN似乎這兩者中更有趣。這裏是從維基百科的文章中提取的描述:

DISLIN是一個高層次的和易於使用的繪圖由赫爾穆特·米歇爾斯的馬克斯普朗克研究所卡特倫布爾格 - 林道,德國開發庫。 Helmut Michels目前在該研究所的計算機中心擔任數學家和Unix系統管理員。

DISLIN庫包含用於以曲線,條形圖,餅圖,三維顏色圖,曲面,輪廓和貼圖形式顯示數據的例程和函數。支持多種輸出格式,如X11,VGA,PostScript,PDF,CGM,HPGL,SVG,PNG,BMP,PPM,GIF和TIFF。

DISLIN可用於編程語言Fortran 77,Fortran 90/95和C.爲大多數操作系統支持Perl,Python和Java語言的擴展。當前版本的DISLIN是9.4,於2008年10月發佈。第一個版本1.0於1986年12月發佈。

DISLIN軟件是免費用於非商業用途。

3

這裏的問題是,與Java不同,C++沒有內置的GUI或圖形。如果您想用C++生成圖表,您需要使用可用於您的操作系統的GUI庫。有免費的GUI庫,許多交叉平臺,如Qt或GTK。

然而,正如其他人指出,爲你做最簡單的事情是將數據保存到文本文件,並使用另一個程序來生成圖形。 gnuplot絕對是一個不錯的選擇。它是大多數Linux發行版的標準,並且可以在cygwin下獲得Windows。

1

如果你熟悉matplotlib,你可以embed蟒蛇在C/C++應用程序。取決於你想要什麼,這可能是一個快速解決方案。

0

Chart Director具有用於C++綁定。我已經使用了他們的.Net庫,我對它們感到非常滿意。這是一個相當便宜的圖書館,併爲您提供各種不同圖表的功能。

8

非常沉重的解決方案:你可以鏈接反對ROOT,它會做幾乎任何你想要的:

  • 在Mac,Windows和Linux上運行
  • 運行編譯或使用CINT interperter
  • 輸出在一個文件中封裝postscript,PDF,gif,png ...
  • 使用幾種不同的技術顯示屏幕
  • 序列化數據在內部f ormat,可以稍後操作

當然,它對於大多數人來說有點多,但它確實按照您的要求進行。我使用它,因爲我知道它,它已經在我的機器上,因爲我是那種物理學家。

1

祺在C++中繪製的人誰沒有做到這一點呢。我會說我做了什麼繪製圖表在C++

  1. http://sourceforge.jp/projects/sfnet_gnuplot/downloads/gnuplot/4.4.3/gp443win32.zip/

  2. 下載的壓縮文件 「gp443win32.zip」 在 「C:\ gnuplot的」 提取它 然後我讀「C: \ Gnuplot \ gnuplot \ README.Windows「 和我得到這些信息:

  3. 我用Windows 7 ==>所以你需要下載」winhlp32.exe「...只是搜索它」winhlp32.exe Windows 7「在搜索引擎中,並通過第一個鏈接。

  4. 追加到「路徑」環境變量的二進制文件夾的路徑是「C:\ gnuplot的\ gnuplot的\二進制」

  5. 然後關閉我的電腦,然後再次打開它。之後,我發現它沒有感知環境變量的變化:d

  6. 你現在需要寫一個示例代碼來測試你的策劃能力:) 這樣你就可以訪問此鏈接 http://code.google.com/p/gnuplot-cpp/source/browse/#svn%2Ftrunk 看頭文件「gnuplot_i.hpp」和源文件「example.cc」。

你會得到很多,很多圖表,選擇你相應的圖,自定義你的核心,並享受:)