اولین بار است که به اینجا می‌آیید؟ راهنمای سایت را بخوانید!
Close Sidebar
وب‌سایت پرسش و پاسخ پارسی‌لاتک جایی برای پرسش و پاسخ درباره سیستم حروف‌چینی لاتک و بسته زی‌پرشین است. در اینجا می‌توانید سوال‌های خود را بپرسید و به سوال‌های دیگران پاسخ دهید.

محبوب‌ترین برچسب‌ها

رفع خطا جدول مراجع xepersian ریاضی‌نویسی شکل فونت فهرست مطالب شماره‌گذاری منابع bidi پانویس بیب‌تک tikz تک‌لایو parsilatex بیمر اسلاید زی‌پرشین پاورقی bibtex سربرگ نماد رسم شکل فرمول‌نویسی قالب ارجاع‌دهی biditexmaker هدر ویرایشگر beamer واژه‌نامه اندازه فونت texstudio عنوان فصل ماتریس اعمال نشدن تغییرات در پی‌دی‌اف رسم جدول bidipresentation شماره صفحه حاشیه رنگ عنوان شکل اسلاید فارسی محیط قضیه گراف مکان شکل tikzpicture حروف‌چینی کد شماره فصل enumerate tabriz_thesis نمایه align زیرنویس شکل کادر itemize فهرست اشکال الگوریتم listings عدم اجرا نیم‌فاصله متن لاتین و فارسی بسته فاصله بین خطوط قالب پایان‌نامه فرمول نصب تک‌لایو فارسی‌تک hyperref شماره فرمول glossaries کپشن نمودار خروجی لاتک حروف‌چینی چندستونی فونت فارسی و انگلیسی ماکرونویسی biditools شماره پاورقی پیوست‌ سوال امتحانی فاصله‌گذاری فرمول چندضابطه‌ای subfigure extrafootnotefeatures header texmaker pdf tex biditufte-book longtable تصویر شمارنده texlive2015 زیرنویس خطا رسم نمودار شماره‌گذاری صفحات پایان نامه دیاگرام فهرست جداول میک‌تک texlive2016 تنظیم جدول آکولاد kashida texworks caption اندیس lollipop iust-thesis multicol فصل‌نویسی شعر سوال چهارگزینه‌ای بولد تورفتگی اعداد فارسی فاصله عمودی xindy چپ‌چینی اوبونتو میکروسافت ورد قاب geometry texlive fancyhdr وسط‌چینی تک لایو 2015 عنوان بخش شماره گذاری به‌روزرسانی بسته aimc46 صفر توخالی فرمول طولانی بیرون‌زدگی xelatex کاما tcolorbox پوستر فاصله سطرها نوشتافت شکست خط tex-programming فونت اعداد pgfplots قرآن tabriz-thesis ایتالیک winedt جستجوی معکوس فلش جایابی تصویر قالب کتاب پاراگراف‌بندی بازیابی اطلاعات هایپرلینک فهرست نمادها شمارنده فصل font محیط ریاضی رسم کادر جداکننده جدول طولانی فهرست تصاویر شماره‌گذاری فرمول algorithm2e فونت بولد proof equation bidipoem eps جدول افقی عکس به‌روزرسانی پانویس چندستونی کمک مالی فاصله خطوط حروف‌چینی شعر زیرشکل minipage قلم پانویس پاراگرافی ltrfootnote پیوست computeautoilg متن فارسی و انگلیسی فرمول چندخطی neveshtuft غلط‌گیری املایی تک‌پارسی پیکان لاتکس tabular baselineskip شماره قسمت قسمت عنوان جدول
48 نفر آنلاین
0 عضو و 48 مهمان در سایت حاضرند
بازدید امروز: 69653
بازدید دیروز: 7936
بازدید کل: 25161600

مشکل در کشیدن نمودار با استفاده از بسته pgfplot

0 رای
2,112 بازدید

با عرض سلام و خداقوت من میخواهم دو تا نمودار را با استفاده از داده های موجود در فایل picture2.dat روی هم بکشم فایل کمینه پیوست شده دو خطا دارد خواهشا راهنمایی کنید
سپاسگزارم

فایل‌های پیوست
سوال شده دی 21, 1397 توسط علیرضا محمدی (93 امتیاز)

3 پاسخ

+2 رای
 
بهترین پاسخ

سلام
در ابتدا تشکر می‌کنم از روش اساتید عزیزم جناب آقای امین‌طوسی و همچنین جناب آقای بیات.


داده‌های شما خیلی زیاد هستند و تک را با خطای زیر روبرو می‌کنید:

TeX capacity exceeded, sorry [main memory size=5000000]. \end{tikzpicture}

حتی با shell-escape و با ایجاد یوزری به صورت زیر هم مشکل مرتفع نشد:

xelatex --shell-escape -interaction=nonstopmode -synctex=-1 %.tex

برای این کار من از تغییر در پیش‌فرض تکلایو استفاده کرده‌ام. برای انجام این‌کار نیاز است ابتدا شما یک نرم‌افزار برای ایجاد تغییرات در فایل‌های با پسوند .cnf داشته باشید. توصیه می‌کنم آخرین نسخه از نرم‌افزار notepad++ را از اینجا دانلود کنید.
من برای انجام این‌کار از نسخه‌ی 7.6.2 بهره گرفته‌ام.
ابتدا به آدرسی مشابه آدرس زیر بروید که تکلایو 2018 را در آن نصب کرده‌اید:

c:\texlive\2018\texmf-dist\web2c

با رفتن به پوشه‌ی تکلایو 2018 و جستجو کردن texmf.cnf نیز با سادگی می‌توانید این فایل را بیابید. مطابق تصویر زیر این فایل را باز کنید:


enter image description here


بعد از باز شدن فایل به سطر‌های 733،734 و 735 از این فایل توجه کنید و تغییرات زیر را انجام دهید:

main_memory = 7000000 % words of inimemory available; also applies to inimf&mp
extra_mem_top = 7000000    % extra high memory for chars, tokens, etc.
extra_mem_bot = 7000000     % extra low memory for boxes, glue, breakpoints, etc.

تغییرات را ذخیره و از فایل خارج شوید.
با توجه به حساسیت این‌کار توصیه می‌کنم دقت کافی را به خرج دهید تا کدی اضافه تغییر نکند. سپس در قسمت جستجوی ویندوز یک command prompt با سطح دسترسی administrator باز کنید (روی آن راست کلیک کنید و گزینه‌ی Run as administrator را انتخاب کنید).
سپس در آن کلمه‌ی texhash را تایپ و اینتر کنید. بهتر است در این مرحله هیچ ویرایشگری روی تکلایو باز نباشد. این عمل را دو بار تکرار کنید (تکرار آن صرفا به خاطر اطمینان از ذخیره‌ی تغییرات است). با این کار قالب‌بندی لاتک خود را به‌روز می‌کنید.
فایل شما در زیر با سلامت کامل پردازش می‌شود:


\documentclass[a4paper,12pt]{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
[
xmin = 0 , xmax = 3 , ymin = 0 , ymax = .65,
width = 12cm ,
height  = 8cm,
title = {Alireza},
xlabel = {Time(Second)},
ylabel = {Motaghayer} ,
%ytick = {-10,-8,...,10},
%xtick = {-10,-8,...,10},
xtick align = center,
minor tick num = 4 ,
%------Grid setting
xmajorgrids,
xminorgrids,
ymajorgrids,
grid style = {thick,dotted},
]
\addplot
[
style = solid,color = blue,
]
table[y index = 1 , x index = 0]
{picture2.dat};
\addplot
[
style = dashed,color =red,
]
table[y index = 2 , x index = 0]
{picture2.dat};
\end{axis}
\end{tikzpicture}
\end{document}

و خروجی زیر را دارید.


enter image description here


موفق باشید.

پاسخ داده شده دی 24, 1397 توسط شاپور مددپور (8,667 امتیاز)
ویرایش شده دی 24, 1397 توسط شاپور مددپور
سپاسگزارم استاد مدد پور
درود
من با استادی فاصله‌ی زیادی دارم. شما لطف دارید.
+1 رای

سلام
من فایل شما را نگاه نکرده‌ام.
در ادامه یک نمونه مثال tikz آورده‌ام که در یک شکل دو نمودار روی هم کشیده شده‌اند.
منظور شما همین بوده است؟

\documentclass[11pt,a4paper]{article} 

\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}[scale=1.5]
\begin{axis}
[xlabel =  xxxxxx , ylabel= yyyyyyyyy ,legend pos=south east]
\addplot table {MP.txt};
\addlegendentry{MP}
\addplot table {OMP.txt};
\addlegendentry{OMP}
\end{axis}
\end{tikzpicture}

\end{document}

که فایلهای MP, OMP حاوی اعداد نمودارها هستند:

MP.txt

10 0.772207
12 1.346039
14 1.252306
17 1.057805
19 1.522252
22 1.515369
24 1.397351
27 1.538976
29 1.487943
32 1.368875

OMP.txt

10 0.812154
12 1.623945
14 1.464117
17 1.238389
19 1.711917
22 1.957823
24 1.819998
27 1.745488
29 1.752866
32 1.771012
پاسخ داده شده دی 22, 1397 توسط محمود امین‌طوسی (3,818 امتیاز)
سلام استاد امین طوسی
 خداقوت
بله منظور من دقیقا همین سوال بود بنده  هم همینطور عمل کردم منتها نمیدونم چرا برنامه خطا میدهد
مثال شما را من اجرا کردم و خطایی نداشت.
شما داده‌هایتان را در نمونه مثال من گذاشتید؟
بله ولی باز هم همان خطا  را میگیرم
خطا را ذکر نکرده‌اید!
شاید پاسخ آقای بیات، جواب شما بوده باشد.
و چه بسا من به علت اینکه تنظیمات پردازشی تک را قبلا تغییر داده بودم خطایی نگرفته‌ام.
بله حق با شماست من خطا رو هم به فایل های پیوست اضافه میکنم .
روش آقای بیات هم جواب میده منتها باید دوباره فایل خروجی در زی پرشین فراخوانی شود من میخواستم ببینم میشود در خود زی پرشین این کار رو انجام داد.
استاد امین طوسی بابت وقتی که گذاشتین بسیار سپاسگزارم
+1 رای

مشکل این است که فایل داده‌های شما قریب به ۲۶۰۰۰ داده دارد و پردازش آن در توان XeLaTeX نیست. پرسش و پاسخی در اینجا مطرح شده که پاسخ‌دهنده پیشنهاد می‌کند از LuaLaTeX استفاده شود و یا تعداد داده‌ها را به شیوه‌ای کاهش داد. چنانچه روش نخست را انتخاب می‌کنید پیشنهاد می‌کنم این نمودار را در فایل جداگانه‌ای با موتور LuaLaTeX تولید کنید و pdf آن را در فایل اصلی فراخوانی نمایید. برای این منظور از کد زیر استفاده کنید:

% !TEX TS-program = LuaLaTeX
\documentclass[12pt]{standalone}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin = 0 , xmax = 3 , ymin = 0 , ymax = 0.6,
width = 12cm, height  = 8cm,
title = {My Plot},
xlabel = {Time (Second)},
ylabel = {Variable} ,
%ytick = {-10,-8,...,10},
%xtick = {-10,-8,...,10},
xtick align = center,
minor tick num = 4 ,
%%------ Grid setting ------%%
xmajorgrids,
xminorgrids,
ymajorgrids,
grid style = {thick,dotted},
]
\addplot [style = solid, color = blue] table [x index = 0, y index = 1, col sep=tab] {picture2.dat};
\addplot [style = dashed,color =red] table [x index = 0, y index = 2, col sep=tab] {picture2.dat};
\end{axis}
\end{tikzpicture}
\end{document}

خروجی:
LuaLaTeX Plot

نکته: تولید نمودار مدتی زمان خواهد برد؛ بنابراین صبور باشید.


ویرایش: حجم داده‌ها را با MATLAB کاهش دادم و فایل آن را با نام picture2_decimated.dat به متن پرسش ضمیمه کردم. با این داده‌ها می‌توانید نمودار موردنظر را با XeLaTeX رسم کنید.

پاسخ داده شده دی 22, 1397 توسط ایمان بیات (3,684 امتیاز)
ممنونم آقای بیات خیلی لطف کردین
به نظرتون راهی وجود نداره که با خود زی پرشین مستقیما این کار رو کرد؟
راهش اینه که تعداد داده‌ها رو کاهش بدی. طبق بررسی اولیه‌ای که داشتم اگه تعداد سطرهای فایل داده‌ها کمتر از ۱۱۷۰۰ سطر باشه با XeLaTeX قابل پردازش هست. تو پرسش و پاسخی که اشاره کردم روشی رو با متلب آموزش داده که می‌تونین ازش استفاده کنین. قطعاً روش‌های دیگه‌ای هم برای کم کردن تعداد داده‌ها وجود داره. اگه این کار به درستی انجام بشه، نمودار خروجی هم تفاوت محسوسی نخواهد کرد.
سپاسگزارم
سلام آقای بیات دیروز با روش شما تونستم یک نمودار بکشم ولی امروز نموداری با همون تعداد داده رو خطای dimension too large میگیره
این خطا با قبلی متفاوته و احتمالاً چیزی به نمودار اضافه کردین که این اتفاق افتاده. پیشنهاد می‌کنم دوباره از ساختار کد بالا استفاده کنین و آپشن‌های جدید رو با دقت بیشتری اضافه کنین. اگر مشکل حل نشد یک پرسش جدید با فایلی که مشکل رو نشون بده ایجاد کنین.
ممنونم چک میکنم اگر حل نشد پرسش جدید میزارم
...