سؤال

هذه هي مشاركتي الأولى وأنا مبتدئ في لغة C++ وأقوم بالتجميع بشكل عام.

أقوم بتجميع برنامج يتطلب رسم بعض الرسوم البيانية.يقوم البرنامج بإنشاء ملف .dat وبعد ذلك يجب أن أفتح gnuplot وأكتب مؤامرة ".dat'.هذا جيّد.

هل هناك طريقة لجعل gnuplot يفتح تلقائيًا ويظهر لي قطعة الأرض التي أحتاجها؟يجب أن أستخدم بعض وظائف النظام () في الكود للاتصال بـ gnuplot ولكن كيف يمكنني أن أجعله يرسم ما أحتاج إليه؟

آسف لغتي الإنجليزية غير مثالية :s

شكرا على الاهتمام على أي حال!

هل كانت مفيدة؟

المحلول

اعتمادًا على نظام التشغيل لديك، قد تتمكن من استخدامه بوبين (). سيسمح لك هذا بإنشاء عملية gnuplot والكتابة إليها فقط مثل أي ملف * آخر.

إذا كانت لديك نقاط بيانات تريد رسمها، فيمكنك تمريرها بشكل سطري مع ملف حبكة "-" ... خيار.وبالمثل، قد ترغب في استكشاف تعيين نقاط نمط البيانات/الخطوط/نقاط الخطوط/إلخ خيارات.


بدون توقف مؤقت أو استمرار، سيتم إنهاء gnuplot عند نهاية دفق الإدخال.في حالة المثال الخاص بك، سيكون ذلك عند الوصول إلى نهاية الملف.


لإنتاج (كتابة) ملف إخراج (رسم بياني)، استخدم:

set terminal png small
set output "filename.png"

هناك الكثير من الخيارات لذلك تعيين المحطة.عادة ما يكون PNG موجودًا.إذا لم يكن الأمر كذلك، فربما يكون gif أو tiff أو jpeg؟

احذر من الكتابة فوق الملف!

قد ترغب في استخدام حجم المجموعة 2,2 لعمل رسم بياني أكبر.بعض تعيين المحطة تتيح لك المتغيرات أيضًا تحديد الحجم.

نصائح أخرى

وأنا أتعلم هذا اليوم أيضا. هنا مثال صغير I يطبخ.

#include <iostream>
#include <fstream> 
using namespace std;
int main(int argc, char **argv) {
    ofstream file("data.dat");
    file << "#x y" << endl;
    for(int i=0; i<10; i++){
        file << i << ' ' << i*i << endl;
    }
    file.close();
    return 0;
}

وفروا أنه plot.cpp وتجميع أنه مع ز ++:

g++ plot.cpp -o plot

وتشغيل البرنامج لإنشاء ملف دات:

./plot

وحفظ البرنامج النصي gnuplot التالية كما plot.plt:

set terminal svg enhanced size 1000 1000 fname "Times" fsize 36
set output "plot.svg"
set title "A simple plot of x^2 vs. x"
set xlabel "x"
set ylabel "y"
plot "./data.dat" using 1:2 title ""

وتشغيل البرنامج النصي مع gnuplot لتوليد ملف .SVG الخاص بك:

gnuplot plot.plt

والمؤامرة الناتجة ستكون في plot.svg. إذا تركت الخروج الأسطر القليلة الأولى التي تحدد الانتاج، وسوف تجعل في إطار. إستمتع!

وأحيانا يكون سهلا كما قد يتصور المرء

    gnuplot file

حيث الملف هو ولا البيانات ولا ملف النتيجة، ولكن ملف مع الأمر ستكتب في سطر الأوامر. فقط أدخل هناك أوامر الخاص بك تحتاج (إما ملف ثابت لديك أو توليد عليه). بعد تنفيذ كل الأوامر في هذا مخارج ملف gnuplot.

ونعم يمكنك ذلك. يمكنك جعل ملف يحتوي على الأوامر ستكتب على خلاف ذلك في إعداد المؤامرة وgnuplot مفتوح يمتد من هذا الملف. هذا الرابط مقالا يشرح كيفية القيام بذلك. يمكنك الإخراج إلى EPS أو غيرها من الأشكال الناتج رسومية وأيضا عرض مؤامرة باستخدام القطعة آخر الذي يقرأ في الملف.

وأنت قد تحتاج إلى استخدام العلم "-persist" إلى الأمر. وأنا أعلم أن على أنظمة لا شىء *، مطلوب هذا العلم إذا كنت ترغب في نافذة مؤامرة لتبقى بعد اكتمال عملية gnuplot وخرجت.

وgnuplot -persist commands.gp

وبالإضافة إلى ذلك، يمكنك وضع العديد من الأوامر gnuplot كما تريد في الملف. يعمل ملف نوع من مثل برنامج نصي دفعة في هذا الصدد.

وقد تحتاج إلى إضافة سطر

pause -1

وهذا سوف تظهر المؤامرة حتى يتم الضغط على العودة.
ما كنت على الأرجح رؤية هو أن يدير gnuplot ومخارج أمام مؤامرة تمت الوقت ليتم عرضها.

وقد تحتاج إلى تحديد نوع المحطة الطرفية. قراءة الوثائق gnuplot عن ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top