سلام، لطفا وارد شوید یا عضو شوید.

نویسنده موضوع: رسم نمودار توابع  (دفعات بازدید: 12724 بار)

آفلاین MhzTpr

  • Newbie
  • *
  • تشکر
  • -اهدا شده: 0
  • -دریافت شده: 0
  • ارسال: 15
    • ديدن مشخصات
رسم نمودار توابع
« : ژوئیه 16, 2014, 03:31:31 pm »
با سلام و خسته نباشید
چطور میتونم تو زی پرشین توابع ریاضی رو رسم کنم؟ دستورش چیه؟ به عنوان مثال میخوام نمودار تابع لگاریتمی نمایی و مثلثاتی و ... رو رسم کنم
ممنون میشم راهنماییم کنید یا یه نمونه ازش برام بفرستید

آفلاین هادی صفی‌اقدم

  • ویرایشگر
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 789
  • -دریافت شده: 1353
  • ارسال: 5,644
    • ديدن مشخصات
پاسخ : رسم نمودار توابع
« پاسخ #1 : ژوئیه 16, 2014, 03:47:09 pm »
سلام
از بسته‌های زیر می‌تونین استفاده کنین.
tikz
pstricks
xy-pic
راهنماشونو ببینین، نمونه‌هایی با شکل خروجی و کد ورودی گذاشته که با کپی اونا می‌تونین ازشون استفاده کنین.

آفلاین ابوالفضل دیانت

  • همکاران
  • Hero Member
  • ***
  • تشکر
  • -اهدا شده: 192
  • -دریافت شده: 271
  • ارسال: 812
    • ديدن مشخصات
پاسخ : رسم نمودار توابع
« پاسخ #2 : ژوئیه 16, 2014, 05:41:32 pm »
با سلام
من خودم برای رسم نمودار از بسته pgfplot استفاده می کنم. واقعا بسته بسیار بسیار قدرتمندی است.
یک نمونه مثال اتچ کردم.
یک عالمه مثال نیز در لینک زیر وجود دارد.

http://pgfplots.sourceforge.net/gallery.html

برای رسم توابع توسط pgfplot شما چندین راه دارید.
الف) رسم توابع با استفاده از فرمول آن ها مثل فایل اتچ شده.
ب) رسم نمودار با استفاده از داده‌ها. داده‌های عددی شما می تواند در یک فایل مجزا با پسوند txt یا csv یا dat و یا ... باشد و یا در داخل خود فایل tex اصلی باشد. نمونه ای از این حالت را در مثال اتچ شده به نام LowerBound2 گذاشتم. اگر دقت کنید در این مثال داده های عددی من در یک فایل csv در کنار فایل tex قرار دارد.

در مثال اتچ شده بعدی به نام LowerBound3 من دو نمودار sin‌و log را برای شما کشیدم و ما بین آن ها را نیز پر کردم. اگر به مثال ها کمی دقت کنید می توانید نحوه رسم نمودار ها را پیدا کنید. مثلا در همین مثال LowerBound3 دستورات زیر استفاده شده است.
۱) تعریف یک محیط axis برای ترسیم نمودار.
۲) دستورات
width=15cm, height=11cm,
برای تعریف اندازه نمودار
۳) دستور xlabel و ylabel برای عنوان محور x ها و y ها
۴) domain مشخص کننده دامنه تابع
۵) دستور
xtick={5,70,...,600}
بر چسب اعداد روی محور x . اولین عدد ۵ دومی ۷۰ و همین طور اعداد به فاصله ۶۵ تا از یکدیگر
۶) دستور
samples=300
تعداد نمونه ها برای رسم نمودار هرچه مقدار sample بزرگتر باشد نمودار نرم تر و با کیفیت بالاتری است.
۷) دستور
\addplot
یک نمودار به axis شما اضافه می کند. شما به راحتی می توانید رابطه خود را بر حسب x به عنوان آرگومان این دستور بدهید. مثلا
\addplot{sin(3*x)};
در آخر آن نیز نقطه ویرگول فراموش نشود.
۸)
name path=B و name path=A
به هر نمودار یک نام می دهد. تا بتوانیم در دستور سوم یعنی
\addplot[gray!30] fill between[of=A and B];
وسط دو نمودار را با رنگ gray!30 پر کنیم.
۹) با دستورات xmin و xmax و ymin و ymax می‌توانید محدوده دقیق نمودار را مشخص کنید.

بسته pgfplot غیر از نمودارهای خطی انواع مختلف نمودار را پیشتیبانی می کند. نمونه ای از نمودار از نوع bar در مثال SumXY قرار داده شده است.
باتشکر
« آخرين ويرايش: ژوئیه 16, 2014, 06:18:01 pm توسط ابوالفضل دیانت »

آفلاین ابوالفضل دیانت

  • همکاران
  • Hero Member
  • ***
  • تشکر
  • -اهدا شده: 192
  • -دریافت شده: 271
  • ارسال: 812
    • ديدن مشخصات
پاسخ : رسم نمودار توابع
« پاسخ #3 : ژوئیه 16, 2014, 06:07:33 pm »
با سلام
در ادامه پست قبلی. اکثر نرم افزار ها مثل MATLAB و ... فایل های داده حاصل از شبیه سازی را می توانند به فرمت های دیگر نیز ذخیره کنند. برای مثال من خروجی یکی از شبیه سازی هایم را در MATLAB به صورت فایل csv در آوردم. و نموداری که می خواستم را با همین بسته pfdplot رسم کردم.
مثال اتچ شده برخی از امکانات این بسته را به خوبی نشان می‌دهد.
فقط دقت کنید که من در کنار فایل های این مثال یک فایل به نام gototheinfty.csv وجود دارد که داده های اصلی است. اگر دقت کنید در سطر اول من سطرها را به نام a , b , c‌گذاشتم. منظور این است که اگر شما خروجی فایل csv گرفتید حتما سطر اولش را این گونه نام گذاری کنید تا بتوانید درون فایل tex بفهمانید که کدام ستون را بر حسب کدام ترسیم کند.
\addplot[mark=o,mark size=2] table [x=a, y=b, col sep=comma] {gototheinfty.csv}node[pos=.5,pin=-75:{Line Slope = 0.9999}] {};
پیرو نکات قبلی واضح است که برای رسم تابع شما نیاز دارید که بسته هایی را وارد کنید.
\usepackage{tikz}
\usetikzlibrary{intersections}

\usepackage{pgfplots}
\usepgfplotslibrary{dateplot,fillbetween}

\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\setlength\PreviewBorder{1mm}
فقط در وارد کردن این بسته ها بسته preview برای حذف حاشیه سفید رنگ صفحه وارد شده است.
اگر می خواهید نمودار را در یک فایل نوشتاری استفاده کنید، من این کار را می کنم  که ابتدا آن را به صورت جداگانه تولید کنید مثل مثال های نمونه سپس فایل pdf‌ خروجی را به صورت یک عکس با دستور includegraphics وارد نوشتار اصلی بکنید.

نکته: برای یادگیری بسته pgfplot خواندن راهنمای بسته، مثال های مختلفی که در لینک های یاد شده قرار دارد، خواندن مثال هایی که در این دو پست اتچ شد، می‌تواند مفید باشد.

باتشکر
« آخرين ويرايش: ژوئیه 16, 2014, 06:16:15 pm توسط ابوالفضل دیانت »

آفلاین MhzTpr

  • Newbie
  • *
  • تشکر
  • -اهدا شده: 0
  • -دریافت شده: 0
  • ارسال: 15
    • ديدن مشخصات
پاسخ : رسم نمودار توابع
« پاسخ #4 : ژوئیه 20, 2014, 12:00:33 am »
با سلام و خسته نباشید
ضمن تشکر از توضیحات و وقت بسیاری که گذاشتید
آقای دیانت چرا وقتی میخوام تغییراتی تو نمودار بدم اعمال نمیشه و وقتی اجرا میکنم فایل پی دی افش بدون تغییر میمونه؟؟
با تشکر

آفلاین ابوالفضل دیانت

  • همکاران
  • Hero Member
  • ***
  • تشکر
  • -اهدا شده: 192
  • -دریافت شده: 271
  • ارسال: 812
    • ديدن مشخصات
پاسخ : رسم نمودار توابع
« پاسخ #5 : ژوئیه 20, 2014, 12:10:19 am »
با سلام
احتمال داره فایلتون خطا داره، میشه فایل مورد نظر را که تغییر داده اید ارسال کنید؟

آفلاین MhzTpr

  • Newbie
  • *
  • تشکر
  • -اهدا شده: 0
  • -دریافت شده: 0
  • ارسال: 15
    • ديدن مشخصات
پاسخ : رسم نمودار توابع
« پاسخ #6 : ژوئیه 20, 2014, 12:49:16 am »
با سلام
احتمال داره فایلتون خطا داره، میشه فایل مورد نظر را که تغییر داده اید ارسال کنید؟

آفلاین ابوالفضل دیانت

  • همکاران
  • Hero Member
  • ***
  • تشکر
  • -اهدا شده: 192
  • -دریافت شده: 271
  • ارسال: 812
    • ديدن مشخصات
پاسخ : رسم نمودار توابع
« پاسخ #7 : ژوئیه 20, 2014, 01:03:12 am »
با سلام
خطای فایل شما این است که تابع log را اشتباه می زنید.
log(x)
در صورتی که درستش این است که مثلا اگر می خواهید لگاریتم در مبنای ۱۰ را بکشید این طوری تابع را وارد کنید.
log10(x)
پس دستور رسم لگاریتم در مبنای ۱۰ به صورت زیر است.
\addplot[name path=B,dashed,,samples=300] {log10(x)};
برای آشنایی با انواع توابع pgf مثل sin ، cos و log10 و ... از پیوند زیر راهنمای pgf را دانلود کنید و صفحه ۹۳۵ بخش 2-90 را مشاهده کنید.
راهنمای pgf
باتشکر
« آخرين ويرايش: ژوئیه 20, 2014, 01:05:00 am توسط ابوالفضل دیانت »

آفلاین MhzTpr

  • Newbie
  • *
  • تشکر
  • -اهدا شده: 0
  • -دریافت شده: 0
  • ارسال: 15
    • ديدن مشخصات
پاسخ : رسم نمودار توابع
« پاسخ #8 : ژوئیه 20, 2014, 01:13:00 am »
خیلی ممنون اما بازم هم تغییر ایجاد نشد. مثال های داخل سایتی که معرفی کردین و همچنین  فایل document شما رو هم pdf شو نشون نمیده موقع اجرا صفحه  pdfخاکستری میاد. من حتی بسته هایی هم که تو پیرو راهنمایی تون اشاره کردین هم وارد کردم بازم نشد....

آفلاین هادی صفی‌اقدم

  • ویرایشگر
  • Hero Member
  • *
  • تشکر
  • -اهدا شده: 789
  • -دریافت شده: 1353
  • ارسال: 5,644
    • ديدن مشخصات
پاسخ : رسم نمودار توابع
« پاسخ #9 : ژوئیه 20, 2014, 01:15:25 am »
آقای دیانت؟ من از این مورد استفاده نکرده‌ام و بلد نیستم. ولی از فایل‌شون معلومه که intersections رو نداره مثل اینکه. درسته؟

آفلاین ابوالفضل دیانت

  • همکاران
  • Hero Member
  • ***
  • تشکر
  • -اهدا شده: 192
  • -دریافت شده: 271
  • ارسال: 812
    • ديدن مشخصات
پاسخ : رسم نمودار توابع
« پاسخ #10 : ژوئیه 20, 2014, 01:18:25 am »
با سلام
نه ظاهرا دارند چون در ابتدای فایل نوشتند
\usepackage{tikz}
\usetikzlibrary{intersections}
یعنی کتابخانه مورد نظر را فراخوانی کرده اند، و در ضمن برای هر نمودار یک نام path مشخص کرده اند. مثلا:
name path=B
من فایلشان را که کامپایل کردم غیر از مشکل log مشکل دیگری نداشت.
باتشکر

آفلاین MhzTpr

  • Newbie
  • *
  • تشکر
  • -اهدا شده: 0
  • -دریافت شده: 0
  • ارسال: 15
    • ديدن مشخصات
پاسخ : رسم نمودار توابع
« پاسخ #11 : ژوئیه 20, 2014, 01:31:38 am »
اگر دقت کرده باشید من اسم محور ها هم (که جمله بودن) عوض کردم بازم تغییر ایجا نمیشه

آفلاین ابوالفضل دیانت

  • همکاران
  • Hero Member
  • ***
  • تشکر
  • -اهدا شده: 192
  • -دریافت شده: 271
  • ارسال: 812
    • ديدن مشخصات
پاسخ : رسم نمودار توابع
« پاسخ #12 : ژوئیه 20, 2014, 01:40:58 am »
با سلام
برای من درست است.
مشکل  این است که ظاهرا شما از 2.8 MikTex استفاده می کنید. در ضمن بسته pgf و pgfplot شما خیلی خیلی قدیمی است. بسته های شما برای سال ۲۰۰۸ است.
باید بسته ها را حتما حتما بروز کنید، وگرنه همین طور خطا می گیرد، چون موارد استفاده شده در بسته های قدیمی وجود نداشته ظاهرا.
خروجی برای خودم را اتچ کردم.
پیشنهاد: از TexLive 2014 به جای miktex استفاده کنید. و حتما حتما هر چند مدت یکبار بسته ها بروز کنید.
برای نحوه نصب و دانلود TexLive 2014 به انجمن TexLive در همین تالار مراجعه کنید و چند پست اول را مشاهده کنید.
باتشکر
« آخرين ويرايش: ژوئیه 20, 2014, 01:42:56 am توسط ابوالفضل دیانت »

آفلاین MhzTpr

  • Newbie
  • *
  • تشکر
  • -اهدا شده: 0
  • -دریافت شده: 0
  • ارسال: 15
    • ديدن مشخصات
پاسخ : رسم نمودار توابع
« پاسخ #13 : ژوئیه 20, 2014, 01:52:40 am »
بله درسته از MikTex 2.8 استفاده میکنم، به احتمال قوی شما درست میگید باید به روز رسانی بشه.
بسیار ممنونم جناب دیانت از راهنمایی مفیدتون و همچنین از وقتی که گذاشتید

آفلاین MhzTpr

  • Newbie
  • *
  • تشکر
  • -اهدا شده: 0
  • -دریافت شده: 0
  • ارسال: 15
    • ديدن مشخصات
پاسخ : رسم نمودار توابع
« پاسخ #14 : ژوئیه 20, 2014, 03:03:14 pm »
با سلام
چرا وقتی ضابطه تابع رو عوض میکنم نمودار تغییر نمیکن؟. مثلا به جای (f(x تو خط 11 میذارم x^2+1 تغییری تو نمودار ایجاد نمیشه. مشکل کجاست؟؟
با تشکر

 

رسم نمودار توابع

نویسنده MhzTprانجمن گرافیک، جدول و شکل

پاسخ ها: 0
مشاهده: 950
آخرين ارسال ژوئیه 16, 2014, 03:26:58 pm
توسط MhzTpr
رسم نمودار با نرم افزار qtiplot و خروجی به تک

نویسنده e.roknabadiانجمن گرافیک، جدول و شکل

پاسخ ها: 0
مشاهده: 4644
آخرين ارسال اكتبر 02, 2009, 09:04:26 am
توسط e.roknabadi
نمونه مثال از رسم توابع

نویسنده محمود امین‌طوسیانجمن گرافیک، جدول و شکل

پاسخ ها: 11
مشاهده: 6896
آخرين ارسال ژوئن 07, 2010, 09:50:17 am
توسط هادی صفی‌اقدم
سوال درباره‌ی نمودار (مربوط به بستی xy)

نویسنده meim007انجمن ریاضیات و علوم

پاسخ ها: 21
مشاهده: 6769
آخرين ارسال فوریه 09, 2010, 02:37:03 pm
توسط meim007
نمودار درون نمودار دیگر

نویسنده علیانجمن گرافیک، جدول و شکل

پاسخ ها: 8
مشاهده: 4487
آخرين ارسال آوریل 06, 2010, 11:22:32 pm
توسط علی
استفاده از ‪\sideset‬ برای غیر توابع ریاضی

نویسنده هادی صفی‌اقدمانجمن ریاضیات و علوم

پاسخ ها: 3
مشاهده: 2049
آخرين ارسال ژانویه 03, 2011, 11:37:09 pm
توسط Jalil
مشكل در افزودن نمودار

نویسنده kamyabانجمن انجمن تازه‌کاران

پاسخ ها: 3
مشاهده: 1769
آخرين ارسال ژوئیه 06, 2011, 04:44:39 pm
توسط vafa
مشکل در نامگذاری نمودار در محیط picture

نویسنده negin1990انجمن گرافیک، جدول و شکل

پاسخ ها: 4
مشاهده: 2652
آخرين ارسال ژوئیه 11, 2011, 01:01:05 am
توسط negin1990