pgfplots-এর মৌলিক বিষয়: উদাহরণসহ LaTeX-এ প্লট
pgfplots লোড করুন, ভেতরে একটি axis রেখে একটি tikzpicture খুলুন, আর প্রতিটি ডেটা সিরিজ \addplot দিয়ে যোগ করুন, হয় কোঅর্ডিনেটের তালিকা হিসেবে নয়তো একটি সূত্র হিসেবে।
সবচেয়ে ছোট প্লট
প্রতিটি pgfplots প্লটে একই তিনটি স্তর থাকে: একটি tikzpicture, তার ভেতরে একটি axis, আর প্রতিটি ডেটা সিরিজের জন্য একটি করে \addplot। প্রিঅ্যাম্বলে \usepackage{pgfplots} দিয়ে প্যাকেজটি লোড করুন।
একটি লাইনে যুক্ত চারটি পয়েন্ট
\begin{tikzpicture}
\begin{axis}
\addplot coordinates {(0,1) (1,3) (2,2) (3,4)};
\end{axis}
\end{tikzpicture}অক্ষটি ডেটা থেকে নিজেই তার পরিসর আর টিক বেছে নেয়। একটি সাধারণ \addplot তার রং ও মার্ক নেয় ডিফল্ট cycle list থেকে: প্রথম সিরিজের জন্য গোল মার্কসহ নীল, দ্বিতীয়টির জন্য বর্গাকার মার্কসহ লাল, এভাবে চলতে থাকে।
একটি সূত্র প্লট করা
কোঅর্ডিনেটের বদলে \addplot-কে বন্ধনীর ভেতরে একটি সূত্র দিন। domain দিয়ে x-এর পরিসর আর samples দিয়ে পয়েন্টের সংখ্যা ঠিক হয়। এগুলো না দিলে pgfplots 25টি নমুনাসহ -5 থেকে 5 পরিসর ব্যবহার করে।
domain আর samples সহ একটি ফাংশন
\begin{tikzpicture}
\begin{axis}
\addplot[blue, thick, domain=-2:2, samples=60] {x^3 - 2*x};
\end{axis}
\end{tikzpicture}\addplot-এর পরে বর্গবন্ধনীর ভেতরের অপশনগুলো সেই সিরিজের স্টাইল ঠিক করে। + ছাড়া অপশন দিলে সিরিজটি মার্ক ছাড়া কালো রঙে (বা আপনার বলা রঙে) আঁকা হয়; \addplot+[...] cycle list-এর স্টাইল রেখে তার সঙ্গে আপনার অপশনগুলো যোগ করে।
লেবেল, শিরোনাম, লেজেন্ড আর গ্রিড
এই অপশনগুলো axis-এ বসে, তাই পুরো প্লটের ওপর প্রভাব ফেলে।
অক্ষের লেবেল, একটি শিরোনাম, একটি লেজেন্ড আর একটি গ্রিড
\begin{tikzpicture}
\begin{axis}[
title={Cooling of a cup of tea},
xlabel={Time (min)},
ylabel={Temperature ($^\circ$C)},
grid=major,
legend pos=north east,
]
\addplot coordinates {(0,80) (5,64) (10,53) (15,44) (20,38)};
\addlegendentry{Measured}
\addplot[red, domain=0:20, samples=40] {22 + 58*exp(-0.08*x)};
\addlegendentry{Model}
\end{axis}
\end{tikzpicture}লেবেলগুলো লেখা, তাই অনুচ্ছেদের মতোই গণিত বসে $ ... $-এর মাঝে। প্রতিটি \addplot-এর পরে \addlegendentry সেই সিরিজের নাম দেয়; চাইলে শেষে \legend{Measured, Model} দিয়ে সব নাম একসঙ্গে তালিকা করতে পারেন।
অক্ষের প্রচলিত অপশন
| অপশন | কী করে | Scissor LaTeX-এ |
|---|---|---|
xlabel, ylabel, title | অক্ষ বরাবর আর প্লটের উপরে লেখা | কাজ করে |
xmin, xmax, ymin, ymax | দৃশ্যমান পরিসর স্থির করে | কাজ করে |
width, height | পুরো ছবির আকার, যেমন width=\linewidth | কাজ করে |
grid=major, grid=both | মেজর (এবং মাইনর) টিকে গ্রিড লাইন | কাজ করে |
xtick={0,1,2}, xticklabels={a,b,c} | টিক আর তাদের লেবেল বেছে নেয় | কাজ করে |
legend pos=north west | north west, north east, south west, south east, outer north east | কাজ করে |
axis lines=left | বাক্সের বদলে তীরসহ L-আকৃতির এক জোড়া অক্ষ | কাজ করে (middle, center, none-ও) |
enlargelimits=false | ডেটার চারপাশে বাড়তি জায়গা নেই | কাজ করে |
axis equal | দুই অক্ষে একই স্কেল | এখনো সমর্থিত নয়: সমস্যা ট্যাবে একটি বার্তাসহ উপেক্ষা করা হয় |
pgfplots ম্যানুয়ালের অন্য বেশিরভাগ অপশনও কাজ করে; লাইন প্লট পেজে স্টাইল আর মার্কের তালিকা আছে। রেন্ডারার যে অপশন চেনে না সেটি উপেক্ষা করা হয়, আর সমস্যা ট্যাবে তার নাম দেখায়।
আকার ও অবস্থান
ডিফল্টভাবে একটি প্লট প্রায় 240 বাই 207 পয়েন্ট, যা pgfplots-এর ডিফল্ট। বদলাতে চাইলে অক্ষে width আর height দিন। একটি প্লটকে ক্যাপশন আর নম্বর দিতে tikzpicture-টি একটি figure-এর ভেতরে রাখুন, ঠিক যেমন একটি ছবির ক্ষেত্রে করতেন।
ক্যাপশনসহ একটি figure-এর ভেতরে প্লট
\begin{figure}[h]
\centering
\begin{tikzpicture}
\begin{axis}[width=7cm, height=4.5cm, xlabel=$x$, ylabel=$x^2$]
\addplot[domain=0:2, samples=30] {x^2};
\end{axis}
\end{tikzpicture}
\caption{A parabola on $[0, 2]$.}
\label{fig:parabola}
\end{figure}
Figure~\ref{fig:parabola} shows the parabola.একটি মাত্র tikzpicture-এর চারপাশে \resizebox{0.5\linewidth}{!}{...}-ও কাজ করে: ছবিটি সেই প্রস্থে স্কেল করা হয়।
একটি TeX ইনস্টলেশন থেকে কী আলাদা
এই পেজের সবকিছু pgfplots সহ একটি TeX ইনস্টলেশনেও কম্পাইল হয়। পুরো ম্যানুয়াল CTAN-এ আছে: ctan.org/pkg/pgfplots।
প্রশ্ন ও উত্তর
আমাকে কি pgfplots ইনস্টল করতে হবে?
না। স্বাভাবিকভাবে \usepackage{pgfplots} লিখুন। Scissor LaTeX প্যাকেজটি চিনে নেয় আর প্লটগুলো নিজেই ব্রাউজারে আঁকে।
আমার ফাংশন প্লট খাঁজকাটা দেখাচ্ছে কেন?
pgfplots ডিফল্টভাবে 25টি পয়েন্ট জোড়া দেয়। আরও মসৃণ বক্ররেখার জন্য \addplot বা অক্ষে samples=100 (বা আরও বেশি) যোগ করুন, অথবা পয়েন্টগুলোর মধ্য দিয়ে বক্ররেখা আঁকতে smooth যোগ করুন।
tikzpicture ছাড়া কি pgfplots ব্যবহার করা যায়?
না, LaTeX-এ axis এনভায়রনমেন্ট সবসময় একটি tikzpicture-এর ভেতরে থাকে। Scissor LaTeX-ও একই নিয়ম মানে, তাই আপনার কোড অন্য জায়গাতেও কম্পাইল হয়।
সাইট তৈরির সময় এই পেজের প্রতিটি উদাহরণ Scissor LaTeX টাইপসেট করে। সর্বশেষ আপডেট: 2026-11-07।