<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tutorials &#8211; SciDAVis</title>
	<atom:link href="https://scidavis.org/tutorials/feed/" rel="self" type="application/rss+xml" />
	<link>https://scidavis.org</link>
	<description>Free Open-Source Scientific Data Analysis &#38; Visualization</description>
	<lastBuildDate>Tue, 20 Oct 2026 03:00:49 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://scidavis.org/wp-content/uploads/2026/04/favicon-150x150.png</url>
	<title>Tutorials &#8211; SciDAVis</title>
	<link>https://scidavis.org</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How to Visualize a Pixel Line Profile from an Image in SciDAVis</title>
		<link>https://scidavis.org/image-line-profile/</link>
					<comments>https://scidavis.org/image-line-profile/#respond</comments>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Thu, 15 Oct 2026 09:54:07 +0000</pubDate>
				<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">https://scidavis.org/image-line-profile/</guid>

					<description><![CDATA[How to Visualize a Pixel Line Profile from an Image in SciDAVis A line profile plots the brightness of an image along a straight line: pixel intensity on the y-axis, pixel index along the line on the x-axis. It is the quickest quantitative check in image analysis — measuring the width of a fluorescence band,...]]></description>
										<content:encoded><![CDATA[
<style>.content-container.site-container{max-width:var(--global-content-narrow-width,842px)!important;margin-left:auto!important;margin-right:auto!important;padding-left:30px!important;padding-right:30px!important}</style>


<style>
.tut-note{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:14px 18px;margin:22px 0}
table.tut{border-collapse:collapse;width:100%;margin:18px 0;font-size:.95em}
table.tut th,table.tut td{border:1px solid #cbd5e1;padding:10px 12px;text-align:left;vertical-align:top}
table.tut th{background:#f1f5f9}
code{background:#f1f5f9;padding:1px 6px;border-radius:4px}
.go-box{background:#fdf8ec;border:1px solid #ecd9a0;padding:18px 22px;margin:2em 0;border-radius:6px}
.go-box h2{margin-top:0}
.go-box .disclosure{font-size:.85em;color:#6b7280;margin-top:1em}
</style>

<h1>How to Visualize a Pixel Line Profile from an Image in SciDAVis</h1>

<p>A <strong>line profile</strong> plots the brightness of an image along a straight line: pixel intensity on the y-axis, pixel index along the line on the x-axis. It is the quickest quantitative check in image analysis — measuring the width of a fluorescence band, the edge sharpness of a microscopy image, the intensity gradient across a material sample, or the profile of a spectral line. This guide shows how to draw one in SciDAVis, read the resulting curve, and know where SciDAVis stops and a dedicated image tool takes over.</p>

<div class="tut-note"><strong>Verified against the source:</strong> the line-profile tool is a documented SciDAVis feature — the official FAQ answers exactly this question (&#8220;How can I visualize a pixel line profile from an image?&#8221;), and the current source code carries the corresponding <code>pixelLineProfile()</code> routine. The steps below follow the official procedure for the 2.9.x series.</div>

<h2>Prerequisites: your image in a graph window</h2>

<p>The line-profile tool works on an image displayed inside a SciDAVis graph window (SciDAVis graphs can embed images as objects on the plot canvas). Open your graph with the image visible at a comfortable zoom — you will be drawing the measurement line by hand, so a large, clear view matters more than anything else.</p>

<h2>Step 1 — Right-click the image, choose &#8220;View pixel line profile&#8221;</h2>

<p>Right-click directly on the image in the graph window and select <strong>View pixel line profile</strong> from the popup menu. A small dialog opens asking for the <strong>number of pixels used for the analysis</strong> — this sets how densely the line is sampled. Choose a value and click OK.</p>

<table class="tut">
<tr><th>Sampling choice</th><th>Effect</th><th>When to use it</th></tr>
<tr><td>Fewer pixels</td><td>Coarser, faster profile</td><td>Quick exploratory checks, very large images</td></tr>
<tr><td>More pixels</td><td>Denser sampling, smoother curve</td><td>Final measurements, narrow features you don&#8217;t want to miss</td></tr>
</table>

<h2>Step 2 — Draw the measurement line</h2>

<p>Click on the image to set the <strong>start point</strong> of the line, then — keeping the left mouse button pressed — move the cursor to the <strong>end point</strong> and release. The moment you release the button, SciDAVis opens a new plot window showing <strong>pixel intensity versus pixel index</strong> along the line you just drew.</p>

<ul>
<li><strong>Drawing across a feature</strong> (perpendicular to an edge or band) gives a cross-section profile — the classic way to measure widths.</li>
<li><strong>Drawing along a gradient</strong> (parallel to the direction of change) shows how intensity falls off with distance.</li>
<li><strong>Straight lines only.</strong> The tool samples one straight segment; for curved paths, draw several straight profiles and compare them.</li>
</ul>

<h2>Step 3 — Read the profile curve</h2>

<p>The result is an ordinary SciDAVis plot window, which means every curve tool you already know applies to it:</p>

<ul>
<li><strong>Peak positions and heights</strong> read straight off the axes — useful for locating bands or lines in the image.</li>
<li><strong>Widths:</strong> measure the full width at half maximum (FWHM) of a peak with <em>Analysis &rarr; Quick Fit</em> and a Gaussian model — the standard way to quote a resolution or feature size. The <a href="https://scidavis.org/curve-fitting/">curve fitting guide</a> walks through the Fit Wizard.</li>
<li><strong>Comparisons:</strong> draw profiles across several regions of the image and plot the resulting curves together (see <a href="https://scidavis.org/multi-layer-plots/">multi-layer graphs</a>) to show, for example, how an edge degrades from one side of a sample to the other.</li>
<li><strong>Export</strong> the profile curve exactly like any other figure — the <a href="https://scidavis.org/exporting-plots/">export guide</a> covers vector formats for papers.</li>
</ul>

<h2>Practical tips for clean profiles</h2>

<ul>
<li><strong>Zoom before you draw.</strong> A line drawn on a thumbnail lands on different pixels than you think. Zoom the image first, then draw.</li>
<li><strong>Average over width when possible.</strong> A single-pixel-wide line is noisy. Drawing the line slightly wider (or drawing several parallel lines and comparing) shows whether a spike is a real feature or one hot pixel.</li>
<li><strong>Calibrate the x-axis yourself.</strong> SciDAVis reports the x-axis in pixel index — it does not know your pixel size. Convert to micrometers (or arcseconds, or millimeters) manually from your instrument&#8217;s calibration and relabel the axis before publishing.</li>
<li><strong>Save the graph with the line visible.</strong> Keep the graph window showing where the line was drawn; six months later you will not remember which transect &#8220;Profile3&#8221; came from.</li>
</ul>

<div class="tut-note"><strong>Honest limits of the tool:</strong> (1) The y-axis is the raw grayscale pixel value — not absorbance, not concentration, not calibrated intensity. Any quantitative claim needs your own calibration. (2) The tool profiles one straight segment at a time; it does not do 2D regions of interest, image stacks, or batch processing. (3) For those — ROIs, stacks, colocalization, batch measurements — use <a href="https://imagej.net/software/fiji/" rel="nofollow noopener" target="_blank">ImageJ / Fiji</a>, the free standard for scientific image analysis, and bring the resulting numbers back into SciDAVis for plotting and fitting.</div>

<h2>When to use SciDAVis vs. a dedicated image tool</h2>

<table class="tut">
<tr><th>Task</th><th>Best tool</th></tr>
<tr><td>Quick cross-section / edge profile of one image</td><td>SciDAVis line profile (this guide)</td></tr>
<tr><td>Fit a model (Gaussian, Lorentzian) to the profile</td><td>SciDAVis — it&#8217;s already a curve here</td></tr>
<tr><td>2D regions of interest, image stacks, batch analysis</td><td>ImageJ / Fiji</td></tr>
<tr><td>Calibrated intensity measurements</td><td>ImageJ / Fiji, then plot in SciDAVis</td></tr>
</table>

<p>The sweet spot is the handoff: extract numbers where the dedicated tool is strongest, then plot, fit, and publish the figures where SciDAVis is strongest.</p>

<div class="go-box">
<h2>Go further</h2>
<ul>
<li><strong>Fit the profile:</strong> <a href="https://scidavis.org/curve-fitting/">Nonlinear Curve Fitting: A Step-by-Step Guide</a> — Gaussian fits for FWHM measurements.</li>
<li><strong>Publish the figure:</strong> <a href="https://scidavis.org/exporting-plots/">Export Publication-Quality Figures</a>.</li>
<li><strong>Compare several profiles:</strong> <a href="https://scidavis.org/multi-layer-plots/">How to Create Multi-Layer Graphs</a>.</li>
</ul>
<p class="disclosure">Disclosure: this box contains promotional links that support this independent resource site.</p>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://scidavis.org/image-line-profile/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Thesis Figures with SciDAVis: From Plot to Printed Page</title>
		<link>https://scidavis.org/thesis-figures/</link>
					<comments>https://scidavis.org/thesis-figures/#respond</comments>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Thu, 15 Oct 2026 09:53:56 +0000</pubDate>
				<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">https://scidavis.org/thesis-figures/</guid>

					<description><![CDATA[Thesis Figures with SciDAVis: From Plot to Printed Page A thesis stands or falls on its figures — examiners notice blurry axes, mismatched fonts, and inconsistent styles long before they notice your statistics. This guide is a workflow, not a button-by-button manual: how to get a graph out of SciDAVis, into your Word document or...]]></description>
										<content:encoded><![CDATA[
<style>.content-container.site-container{max-width:var(--global-content-narrow-width,842px)!important;margin-left:auto!important;margin-right:auto!important;padding-left:30px!important;padding-right:30px!important}</style>


<style>
.tut-note{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:14px 18px;margin:22px 0}
table.tut{border-collapse:collapse;width:100%;margin:18px 0;font-size:.95em}
table.tut th,table.tut td{border:1px solid #cbd5e1;padding:10px 12px;text-align:left;vertical-align:top}
table.tut th{background:#f1f5f9}
code{background:#f1f5f9;padding:1px 6px;border-radius:4px}
pre{background:#f1f5f9;padding:14px 16px;border-radius:6px;overflow-x:auto;font-size:.92em}
.go-box{background:#fdf8ec;border:1px solid #ecd9a0;padding:18px 22px;margin:2em 0;border-radius:6px}
.go-box h2{margin-top:0}
.go-box .disclosure{font-size:.85em;color:#6b7280;margin-top:1em}
</style>

<h1>Thesis Figures with SciDAVis: From Plot to Printed Page</h1>

<p>A thesis stands or falls on its figures — examiners notice blurry axes, mismatched fonts, and inconsistent styles long before they notice your statistics. This guide is a <strong>workflow</strong>, not a button-by-button manual: how to get a graph out of SciDAVis, into your Word document or LaTeX thesis, and polished to submission standard with free tools. The mechanics of the export dialog itself are covered in the companion guide <a href="https://scidavis.org/exporting-plots/">Export Publication-Quality Figures (SVG, EPS, PDF)</a>; read that first if you haven&#8217;t exported anything yet.</p>

<h2>The thesis figure pipeline</h2>

<p>Do these five steps in order, for every figure, and your thesis will look like one coherent document instead of a scrapbook:</p>

<ol>
<li><strong>Plot and style in SciDAVis.</strong> Final axis labels, units, fonts, and legend — before exporting.</li>
<li><strong>Export a vector master</strong> (SVG, PDF, or EPS). This is your archival copy.</li>
<li><strong>Insert into your document:</strong> PNG for Word, PDF for LaTeX.</li>
<li><strong>Polish in Inkscape</strong> — cosmetic fixes only (label nudges, panel letters, alignment).</li>
<li><strong>Archive the SciDAVis project</strong> (<code>.sciprj</code>) alongside the figure, so you can regenerate it when an examiner asks for a change.</li>
</ol>

<h2>Step 1 — Choose your formats before you plot, not after</h2>

<p>The single most common mistake is plotting first and choosing a format last. Decide now:</p>

<table class="tut">
<tr><th>Destination</th><th>Master format</th><th>Why</th></tr>
<tr><td>LaTeX thesis (pdfLaTeX)</td><td>PDF (vector)</td><td>Embedded 1:1, scales perfectly to <code>\columnwidth</code></td></tr>
<tr><td>Microsoft Word</td><td>PNG at 300+ dpi</td><td>Word handles raster images reliably; vector import is fragile</td></tr>
<tr><td>Journal submission</td><td>Whatever the author guidelines say — usually EPS, PDF, or TIFF</td><td>Check the guidelines <em>before</em> you start plotting</td></tr>
</table>

<p>Rule of thumb: if your figure is lines, symbols, and text — which is nearly everything SciDAVis produces — a vector format is always the right master. Bitmaps are only the final step for Word.</p>

<h2>Step 2 — Style the graph for print while it&#8217;s still in SciDAVis</h2>

<p>Export captures the graph window as it is, so fix these before you touch the Export dialog:</p>

<ul>
<li><strong>Size the window to the final figure size.</strong> A single-column figure is typically 8–9 cm wide; a full-page figure about 17 cm. If the window is much larger than its target, text and line widths will look wrong after scaling.</li>
<li><strong>Use thesis-matching fonts.</strong> Pick the same family your thesis template uses (a standard serif for body-matching figures, a common sans-serif for slides). SciDAVis embeds font names, not the fonts themselves — stick to fonts that will exist on the machine that renders the final PDF.</li>
<li><strong>Label axes with units</strong> (&#8220;Time (s)&#8221;, &#8220;Absorbance (a.u.)&#8221;), and keep the legend inside the plot frame where possible so nothing gets clipped.</li>
<li><strong>One style per thesis.</strong> Same tick length, same line widths, same color palette on every figure. Save your styling as a reusable template with <em>File &rarr; Save as Template</em> — the <a href="https://scidavis.org/plot-templates/">plot templates guide</a> shows how.</li>
</ul>

<h2>Step 3a — The Microsoft Word route: PNG, high resolution, no compression</h2>

<p>Word and vector graphics have an uneasy relationship, so for Word theses the reliable path is a high-resolution PNG:</p>

<ol>
<li>In SciDAVis, open the <em>Export Graph</em> dialog and export a PNG at 300 dpi or higher (600 dpi for a full-page figure is safer).</li>
<li>In Word, use <em>Insert &rarr; Pictures &rarr; This Device</em> — never drag-and-drop from a browser, which can silently downscale.</li>
<li><strong>Turn off Word&#8217;s automatic image compression</strong>, or it will undo your careful 300-dpi export: <em>File &rarr; Options &rarr; Advanced &rarr; Image Size and Quality</em>, tick &#8220;Do not compress images in file&#8221;, and set the default resolution to <em>High fidelity</em>.</li>
<li>Size the image with the corner handle (hold Shift to keep proportions); never stretch it wider than its exported resolution.</li>
</ol>

<h2>Step 3b — The LaTeX route: PDF figures, one line each</h2>

<p>This is the cleaner route. Export the graph as PDF from SciDAVis, drop the file next to your <code>.tex</code> sources, and include it with:</p>

<pre>\begin{figure}[htbp]
  \centering
  \includegraphics[width=\columnwidth]{fig3-kinetics.pdf}
  \caption{First-order rate plot for the reaction at 298\,K. Error bars show the standard deviation of three replicates.}
  \label{fig:kinetics}
\end{figure}</pre>

<p>Notes that save hours of debugging:</p>

<ul>
<li>pdfLaTeX embeds PDF figures natively — no conversion step, no quality loss.</li>
<li>If your template is an older one that demands EPS (some university classes still do), export EPS from SciDAVis and convert with <code>epstopdf</code>; the result is identical for plotting purposes.</li>
<li>Set <code>width=\columnwidth</code> (or <code>0.8\columnwidth</code>) rather than a fixed size, so the figure follows your template&#8217;s margins automatically.</li>
</ul>

<table class="tut">
<tr><th></th><th>Word route</th><th>LaTeX route</th></tr>
<tr><td>Export from SciDAVis</td><td>PNG, 300–600 dpi</td><td>PDF (vector)</td></tr>
<tr><td>Insert command</td><td>Insert &rarr; Pictures</td><td><code>\includegraphics</code></td></tr>
<tr><td>Sizing</td><td>Corner handle, keep proportions</td><td><code>width=\columnwidth</code></td></tr>
<tr><td>Biggest pitfall</td><td>Word compressing your images</td><td>Forgetting to copy the PDF to the build folder</td></tr>
<tr><td>Archival master</td><td colspan="2" style="text-align:center">The vector export (SVG/PDF) + the <code>.sciprj</code> project</td></tr>
</table>

<h2>Step 4 — Polish in Inkscape (cosmetic fixes only)</h2>

<p>Even a well-styled SciDAVis graph occasionally needs a nudge: a panel letter here, a re-aligned legend there, two related figures merged side by side. Inkscape (free, open-source) opens SciDAVis SVG exports as fully editable vector objects:</p>

<ol>
<li><em>File &rarr; Open</em> the SVG master in Inkscape.</li>
<li>Nudge labels, add panel letters like <strong>(a)</strong> and <strong>(b)</strong>, align multi-panel composites with the Align tools.</li>
<li>Export the finished composite as PDF (for LaTeX) or PNG (for Word).</li>
</ol>

<p>This SciDAVis &rarr; Inkscape &rarr; (GIMP for photos) chain is exactly what several university lab courses teach for publication-quality figures — including the Kilgour Lab&#8217;s open teaching materials on making figures with free software. One ethical boundary to respect: <strong>polish, don&#8217;t redraw.</strong> Moving a label is fine; moving a data point is fabrication. Keep every edit cosmetic.</p>

<div class="tut-note"><strong>Honest notes before you submit:</strong> (1) SciDAVis records font <em>names</em> in vector exports — if you use an exotic font, the publisher&#8217;s machine will substitute something else. (2) Flatten transparency (overlapping semi-transparent fills) before journal submission; some production systems rasterize it badly. (3) Complex 3D surfaces export best as high-resolution bitmaps — see the <a href="https://scidavis.org/3d-plots/">3D plots guide</a> for what to know before exporting them. (4) Keep the <code>.sciprj</code> file: examiners <em>will</em> ask for &#8220;the same figure but with the 400 K data added,&#8221; and regenerating from the project takes minutes.</div>

<h2>Pre-submission figure checklist</h2>

<ul>
<li>Every figure is vector (or 300+ dpi raster) — no screenshots of your own plots.</li>
<li>Fonts are consistent across all figures and match the thesis template.</li>
<li>All axes labeled with quantities <em>and</em> units; no default &#8220;Column 1&#8221; labels anywhere.</li>
<li>Captions describe what the reader should conclude, not just what is plotted.</li>
<li>Colors are distinguishable in grayscale (print your thesis draft in black and white once — many examiners still do).</li>
<li>Figure files are named consistently (<code>fig3-kinetics.pdf</code>, not <code>untitled_export2_final_v3.png</code>).</li>
</ul>

<div class="go-box">
<h2>Go further</h2>
<ul>
<li><strong>Export mechanics:</strong> the full <em>Export Graph</em> dialog walkthrough is in <a href="https://scidavis.org/exporting-plots/">Export Publication-Quality Figures</a>.</li>
<li><strong>Composite figures:</strong> combine panels with <a href="https://scidavis.org/multi-layer-plots/">Multi-Layer Graphs</a> before exporting.</li>
<li><strong>Consistent styling:</strong> <a href="https://scidavis.org/plot-templates/">Plot Templates</a> keeps every figure in one visual language.</li>
<li><strong>Polish your writing too:</strong> figures carry the data, but the text carries the argument — <a href="/go/grammarly">see official pricing</a> for a writing assistant that catches grammar and clarity issues in thesis drafts.</li>
</ul>
<p class="disclosure">Disclosure: this box contains promotional links that support this independent resource site.</p>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://scidavis.org/thesis-figures/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Fitting the Michaelis–Menten Equation in SciDAVis</title>
		<link>https://scidavis.org/michaelis-menten-fit/</link>
					<comments>https://scidavis.org/michaelis-menten-fit/#respond</comments>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Thu, 15 Oct 2026 09:32:27 +0000</pubDate>
				<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">https://scidavis.org/michaelis-menten-fit/</guid>

					<description><![CDATA[Fitting the Michaelis–Menten Equation in SciDAVis Enzyme kinetics lives on one curve: reaction rate v versus substrate concentration [S], rising steeply and flattening toward a maximum. The Michaelis–Menten model describes it: v = Vmax · [S] / (Km + [S]) where Vmax is the maximum rate and Km (the Michaelis constant) is the substrate concentration...]]></description>
										<content:encoded><![CDATA[
<style>.content-container.site-container{max-width:var(--global-content-narrow-width,842px)!important;margin-left:auto!important;margin-right:auto!important;padding-left:30px!important;padding-right:30px!important}</style>

<style>
table.tut{border-collapse:collapse;width:100%;margin:18px 0;font-size:.95em}
table.tut th,table.tut td{border:1px solid #cbd5e1;padding:10px 12px;text-align:left;vertical-align:top}
table.tut th{background:#f1f5f9}
.tut-note{background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px;padding:14px 18px;margin:22px 0}
.tut-warn{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:14px 18px;margin:22px 0}
code{background:#f1f5f9;padding:1px 6px;border-radius:4px}
</style>
<h1>Fitting the Michaelis–Menten Equation in SciDAVis</h1>
<p>Enzyme kinetics lives on one curve: reaction rate <em>v</em> versus substrate concentration <em>[S]</em>, rising steeply and flattening toward a maximum. The Michaelis–Menten model describes it:</p>
<p style="text-align:center;font-size:1.15em"><strong><em>v</em> = V<sub>max</sub> · [S] / (K<sub>m</sub> + [S])</strong></p>
<p>where <strong>V<sub>max</sub></strong> is the maximum rate and <strong>K<sub>m</sub></strong> (the Michaelis constant) is the substrate concentration at half-maximum rate. SciDAVis has no built-in Michaelis–Menten model, but its Fit Wizard accepts any custom formula — so you can fit this classic properly, with real parameter errors, instead of eyeballing it or linearizing it away. <a href="/tutorials/">Back to all tutorials</a>.</p>
<div class="tut-note"><p><strong>Version note:</strong> written for v2.9.x (SourceForge binaries are 2.8). The Fit Wizard and muParser formula language are identical in both. If you&#8217;re new to fitting in SciDAVis, read our <a href="/curve-fitting/">general curve-fitting guide</a> first — this tutorial builds on it.</p></div>
<h2>Step 1 — Prepare and plot your data</h2>
<ol>
<li>Put substrate concentrations in one table column (X) and measured initial rates in another (Y).</li>
<li>Select both columns and create a <strong>Scatter</strong> plot from the Plot menu. Check the shape first: you should see a rising curve that levels off. If the highest [S] points are still climbing steeply, your data may not reach saturation — K<sub>m</sub> will be poorly determined, and no software can fix that.</li>
<li>Click the curve in the graph so it is selected — the Fit Wizard operates on the active curve.</li>
</ol>
<h2>Step 2 — Enter the custom formula in the Fit Wizard</h2>
<ol>
<li>Open <strong>Analysis → Fit Wizard</strong> (or press <strong>Ctrl+Y</strong>).</li>
<li>Under the model category, choose <strong>User-defined</strong>.</li>
<li>Type the formula in muParser syntax — the same expression language SciDAVis uses for column formulas. The independent variable is <code>x</code>; declare your two fit parameters as names:</li>
</ol>
<p style="text-align:center"><code>Vm*x/(Km+x)</code></p>
<ol start="4">
<li>In the parameter list, enter <code>Vm, Km</code> — every name in the formula must be declared as a parameter to fit.</li>
<li>Set sensible units in your head now: if your rates are in µmol/min and [S] in mM, then Vm comes out in µmol/min and Km in mM. SciDAVis doesn&#8217;t track units — you do.</li>
</ol>
<h2>Step 3 — Give good initial guesses (this is where fits fail)</h2>
<p>Nonlinear fitting is iterative: the algorithm refines your guesses, and bad guesses converge to nonsense. This exact failure — fitting Michaelis–Menten and getting garbage — is a real, documented user struggle on the SciDAVis forums. The fix is always the same: read the starting values off the plot.</p>
<table class="tut">
<tr><th>Parameter</th><th>What it means on your plot</th><th>How to guess it</th></tr>
<tr><td><strong>Vm</strong> (V<sub>max</sub>)</td><td>The plateau height — the rate your data levels off toward</td><td>Read the Y-value where the curve flattens. If no clear plateau, guess slightly above your highest point.</td></tr>
<tr><td><strong>Km</strong></td><td>The [S] at which the rate is half of V<sub>max</sub></td><td>Halve your Vm guess, find that Y on the curve, and read the corresponding X. That&#8217;s your Km guess.</td></tr>
</table>
<div class="tut-warn"><p><strong>Don&#8217;t skip this step.</strong> Defaults like 1.0 for both parameters routinely fail to converge or land in a wrong local minimum — the classic &#8220;SOS&#8221; fitting thread. Thirty seconds reading two numbers off the plot saves an hour of debugging.</p></div>
<h2>Step 4 — Run the fit and read the results</h2>
<ol>
<li>Click <strong>Fit</strong> in the wizard. SciDAVis draws the fitted curve on your graph in red.</li>
<li>Open the <strong>Results Log</strong> (log window): you&#8217;ll see Vm and Km each with a <strong>standard error</strong>, plus chi-square and R².</li>
<li>Judge the fit with your eyes first: zoom in and check that the red curve passes through the data with residuals scattering randomly around it. A systematic S-shaped miss means the simple model is wrong (cooperativity, substrate inhibition — beyond this tutorial).</li>
</ol>
<p><strong>Sanity checks before you trust the numbers:</strong></p>
<ul>
<li><strong>Parameter errors vs. values:</strong> if the Km error is larger than Km itself, your data doesn&#8217;t pin down Km — you need more points in the low-[S] rising region.</li>
<li><strong>Does Km sit inside your data range?</strong> A fitted Km far above your highest [S] is an extrapolation, not a measurement. Say so in your report.</li>
<li><strong>Reproducibility:</strong> save the project (<code>.sciprj</code>) — it stores the formula, parameters, and results together.</li>
</ul>
<h2>Should you linearize instead (Lineweaver–Burk)?</h2>
<p>The old textbook trick — plot 1/v vs 1/[S] and fit a straight line — exists because scientists in the 1930s had no computers. It distorts your error structure: small measurement errors at low [S] become enormous errors in 1/[S], and the linear fit weights them wrongly. <strong>Direct nonlinear fitting of the Michaelis–Menten equation, as above, is the statistically correct modern practice.</strong> Linearization is fine for a quick classroom illustration; it is not how you report K<sub>m</sub> in a thesis.</p>
<div class="tut-note"><p><strong>Next steps:</strong> for the general fitting workflow — fit ranges, fixing parameters, weighting by error bars — see <a href="/curve-fitting/">nonlinear curve fitting</a>. Plotting on log concentration axes? See <a href="/log-scale/">logarithmic scale axes</a>. Finished? <a href="/exporting-plots/">Export the figure for publication</a>.</p></div>
<p><em>This page is maintained by an independent community resource site and is not affiliated with the SciDAVis developers.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://scidavis.org/michaelis-menten-fit/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Plot a Logarithmic Scale Axis in SciDAVis</title>
		<link>https://scidavis.org/log-scale/</link>
					<comments>https://scidavis.org/log-scale/#respond</comments>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Thu, 15 Oct 2026 09:32:18 +0000</pubDate>
				<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">https://scidavis.org/log-scale/</guid>

					<description><![CDATA[How to Plot a Logarithmic Scale Axis in SciDAVis Data that spans orders of magnitude — concentrations from nanomolar to millimolar, frequencies from hertz to megahertz, light intensities in a decay curve — collapses into an unreadable L-shape on a linear axis. The fix is a logarithmic axis, and in SciDAVis it is a two-click...]]></description>
										<content:encoded><![CDATA[
<style>.content-container.site-container{max-width:var(--global-content-narrow-width,842px)!important;margin-left:auto!important;margin-right:auto!important;padding-left:30px!important;padding-right:30px!important}</style>

<style>
table.tut{border-collapse:collapse;width:100%;margin:18px 0;font-size:.95em}
table.tut th,table.tut td{border:1px solid #cbd5e1;padding:10px 12px;text-align:left;vertical-align:top}
table.tut th{background:#f1f5f9}
.tut-note{background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px;padding:14px 18px;margin:22px 0}
.tut-warn{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:14px 18px;margin:22px 0}
code{background:#f1f5f9;padding:1px 6px;border-radius:4px}
</style>
<h1>How to Plot a Logarithmic Scale Axis in SciDAVis</h1>
<p>Data that spans orders of magnitude — concentrations from nanomolar to millimolar, frequencies from hertz to megahertz, light intensities in a decay curve — collapses into an unreadable L-shape on a linear axis. The fix is a logarithmic axis, and in SciDAVis it is a two-click setting. This tutorial covers enabling log scales, setting up minor ticks, controlling tick spacing, and the traps that catch beginners. <a href="/tutorials/">Back to all tutorials</a>.</p>
<div class="tut-note"><p><strong>Version note:</strong> written for v2.9.x (SourceForge binaries are 2.8). The axis-scale dialogs are unchanged between the two. The menu path below is confirmed against the official SciDAVis Handbook (Format menu → Scales).</p></div>
<h2>Step 1 — Switch the axis to logarithmic</h2>
<ol>
<li>Create your plot normally (select X and Y columns, Plot menu, e.g. Scatter or Line).</li>
<li><strong>Double-click the axis</strong> you want to change — or open <strong>Format → Scales</strong> from the menu bar. Both open the same dialog.</li>
<li>In the Scales tab, select the axis (Bottom, Left, Right, or Top) and change its <strong>Type</strong> from <em>linear</em> to <em>logarithmic</em>.</li>
<li>Adjust the range so it covers whole decades (e.g. 1 to 10000 rather than 3 to 8000) — log axes read cleanest on decade boundaries.</li>
</ol>
<p>For a <strong>semi-log plot</strong> (one log axis, one linear — the classic for exponential decays and dose-response curves), change only one axis. For a <strong>log-log plot</strong> (power laws, spectra spanning decades), switch both X and Y to logarithmic.</p>
<h2>Step 2 — Set up minor ticks</h2>
<p>Major ticks on a log axis sit at each power of ten (1, 10, 100, …). The smaller ticks between them — at 2, 3, … 9 × 10<sup>n</sup> — are the <strong>minor ticks</strong>, and they are what make a log axis readable.</p>
<ol>
<li>In the same <strong>Format → Scales</strong> dialog, find the tick settings for your logarithmic axis.</li>
<li>Set the number of <strong>minor ticks</strong> (the secondary ticks between major ones). For a base-10 log axis, 8 minor ticks per decade gives the familiar 2–9 subdivisions.</li>
<li>Enable minor tick marks on the axis display so they actually draw.</li>
</ol>
<div class="tut-warn"><p><strong>Honest limitation:</strong> SciDAVis delegates tick placement to the Qwt plotting library, and tick <em>counts</em> are treated as hints, not strict orders — Qwt may choose a slightly different number of ticks than you typed if it thinks the result looks better. If you need exact tick positions, use the <strong>step method</strong> instead: the Scales tab lets you switch from &#8220;number of ticks&#8221; to a fixed step between major ticks, which pins positions deterministically. This is the officially documented route for non-standard tick spacing.</p></div>
<h2>Step 3 — Add grid lines that follow the log scale</h2>
<ol>
<li>Open <strong>Format → Grid</strong>.</li>
<li>Enable grid lines for the logarithmic axis. You can choose grid lines at major ticks only, or at both major and minor ticks.</li>
<li>For log-log plots, a light grid at minor ticks is the standard journal look — it lets readers interpolate between decades.</li>
</ol>
<p>Grid frequency follows the tick settings from the Scales tab, so set your ticks first, then the grid.</p>
<h2>Common pitfalls</h2>
<table class="tut">
<tr><th>Problem</th><th>Why it happens</th><th>Fix</th></tr>
<tr><td>Axis is empty or the curve vanishes</td><td>Log of zero or negative values is undefined — Qwt cannot draw them</td><td>Filter out zeros/negatives from the plotted columns, or start the axis range above zero</td></tr>
<tr><td>Tick labels show 1e+03 instead of 1000</td><td>Automatic numeric format switches to scientific notation</td><td>Adjust the axis numeric format/precision in the axis settings, or use the superscript format option</td></tr>
<tr><td>Minor ticks don&#8217;t appear where expected</td><td>Qwt treats tick counts as hints (see above)</td><td>Use the step method for deterministic spacing</td></tr>
<tr><td>Straight line looks &#8220;wrong&#8221; on log-log</td><td>It&#8217;s not wrong — a straight line on log-log means a power law (y = ax^b), slope = exponent b</td><td>Read the slope as the exponent; that&#8217;s the point of the plot</td></tr>
</table>
<h2>Log scale or log-transformed data?</h2>
<p>Two different operations, often confused:</p>
<ul>
<li><strong>Logarithmic axis (this tutorial):</strong> your data stays as-is; only the axis is drawn logarithmically. The plotted points keep their original values — tooltips, fits, and exports all use real numbers. This is what you want 95% of the time.</li>
<li><strong>Log-transformed data:</strong> you create a new column with <code>log10(y)</code> via Table → Add Function and plot that on a linear axis. Needed only when the <em>analysis itself</em> (a linear fit, statistics) must run in log space.</li>
</ul>
<p>Prefer the logarithmic axis: it is reversible, honest, and keeps your table clean.</p>
<div class="tut-note"><p><strong>Next steps:</strong> fit a model to your curve with <a href="/curve-fitting/">nonlinear curve fitting</a> (fits run on the real data values regardless of axis scale), or combine log axes with <a href="/multi-layer-plots/">multi-layer arrangements</a> such as twin y-axes. Finished? <a href="/exporting-plots/">Export the figure for publication</a>.</p></div>
<p><em>This page is maintained by an independent community resource site and is not affiliated with the SciDAVis developers. Menu paths verified against the official SciDAVis Handbook.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://scidavis.org/log-scale/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Import Origin OPJ Files into SciDAVis</title>
		<link>https://scidavis.org/import-origin-opj-files/</link>
					<comments>https://scidavis.org/import-origin-opj-files/#respond</comments>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Thu, 15 Oct 2026 09:32:04 +0000</pubDate>
				<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">https://scidavis.org/import-origin-opj-files/</guid>

					<description><![CDATA[How to Import Origin OPJ Files into SciDAVis Moving away from Origin? SciDAVis can read legacy Origin project files (.opj) directly — your tables, graphs, and matrices come across into the familiar spreadsheet-and-plot-windows workflow. The import uses the liborigin library built into SciDAVis. This guide walks you through it step by step, including the one...]]></description>
										<content:encoded><![CDATA[
<style>.content-container.site-container{max-width:var(--global-content-narrow-width,842px)!important;margin-left:auto!important;margin-right:auto!important;padding-left:30px!important;padding-right:30px!important}</style>


<style>
.step{background:#f7f9fc;border:1px solid #dfe5ee;padding:16px 20px;margin:1.4em 0;border-radius:6px}
.step h3{margin-top:0}
kbd{background:#eef1f6;border:1px solid #cfd6e2;border-bottom-width:2px;border-radius:4px;padding:1px 6px;font-family:inherit;font-size:.9em;white-space:nowrap}
.warn{background:#fff7e8;border:1px solid #f0d9a0;padding:16px 20px;margin:1.8em 0;border-radius:6px}
ol.steps{counter-reset:step;list-style:none;padding-left:0}
ol.steps>li{counter-increment:step;margin:1.2em 0;padding-left:3.2em;position:relative}
ol.steps>li::before{content:counter(step);position:absolute;left:0;top:0;width:2.2em;height:2.2em;line-height:2.2em;text-align:center;background:#2f6fed;color:#fff;border-radius:50%;font-weight:700;font-size:.9em}
</style>


<h1>How to Import Origin OPJ Files into SciDAVis</h1>
<p>Moving away from Origin? SciDAVis can read legacy Origin project files (<strong>.opj</strong>) directly — your tables, graphs, and matrices come across into the familiar spreadsheet-and-plot-windows workflow. The import uses the <a href="https://github.com/SciDAVis/liborigin" rel="nofollow noopener" target="_blank">liborigin</a> library built into SciDAVis. This guide walks you through it step by step, including the one quirk that confuses almost every first-time importer.</p>
<h2>Before you start: which Origin format do you have?</h2>
<div class="warn">
<strong>Honest boundary: OPJU files are NOT supported.</strong> The newer compressed project format used by Origin 2018 and later (.opju) cannot be opened by SciDAVis&#8217;s importer. This guide covers the legacy <strong>.opj</strong> format only. If you only have an .opju file, ask the file&#8217;s author to re-save it as .opj in Origin (File &#8594; Save As, choosing the OPJ format), or export the raw data to CSV and import that with our <a href="/importing-data/">data import tutorial</a>.
</div>
<h2>Preparing your file in Origin first (optional, but helps)</h2>
<p>If you still have access to Origin, a little prep work makes the import smoother:</p>
<ul>
<li><strong>Save as legacy OPJ:</strong> use File &#8594; Save As and choose the older OPJ format rather than OPJU. This is the single most important step.</li>
<li><strong>Flatten formulas:</strong> worksheet formulas and analysis templates reference Origin&#8217;s engine, which does not exist in SciDAVis. Copy the computed values into plain columns before saving, or be prepared to re-do the fits in SciDAVis afterward.</li>
<li><strong>Simplify complex layouts:</strong> multi-panel pages with layered annotations import most reliably when you keep them simple — one figure per page where possible.</li>
<li><strong>Keep the original:</strong> always keep your original OPJ file untouched, so you can re-import or cross-check at any time.</li>
</ul>
<h2>Alternative route: export to CSV</h2>
<p>If the OPJ import fails or you only have an OPJU file, the robust fallback is exporting each worksheet to CSV from Origin (Worksheet &#8594; Export), then importing those CSV files into SciDAVis tables. You lose the original formatting, but the data — the part that actually matters — transfers perfectly. Our <a href="/importing-data/">data import tutorial</a> covers the CSV route in detail.</p>
<h2>Step-by-step: open an OPJ project</h2>
<ol class="steps">
<li><strong>Launch SciDAVis.</strong> If you have not installed it yet, grab it from our <a href="/download/">download page</a> (Windows, macOS, and Linux builds are available).</li>
<li><strong>Open the project:</strong> go to <strong>File &#8594; Open Project</strong> (or press <kbd>Ctrl</kbd>+<kbd>O</kbd>). In the file dialog, change the file-type filter to the Origin project option (or &#8220;All files&#8221;), then select your <strong>.opj</strong> file.</li>
<li><strong>Don&#8217;t panic if the graphs &#8220;disappear&#8221;.</strong> This is the classic first-run surprise: you briefly see graphs and data sheets flash on screen, then everything seems to vanish. Nothing is lost — the import placed your data inside the project tree. Open the <strong>Project Explorer</strong> with <strong>View &#8594; Project Explorer</strong> (or press <kbd>Ctrl</kbd>+<kbd>E</kbd>): you will find your tables, graphs, and matrices neatly organized under a folder, typically named <em>Folder1</em>.</li>
<li><strong>Open what you need.</strong> Double-click any table or graph in the Project Explorer to open it. Inspect the tables to confirm your columns and values came through, then open the graphs and check that the plotted data looks right.</li>
<li><strong>Sanity-check the import.</strong> Tables, graphs, and matrices are imported as their SciDAVis equivalents, but complex layouts, formatting details, and formulas do not always translate perfectly. Spot-check a few key plots against your original data before deleting anything.</li>
<li><strong>Save as a SciDAVis project.</strong> Once you are happy, save your work with <strong>File &#8594; Save Project</strong> as a native <strong>.sciprj</strong> file so you never have to re-import. From here you can continue your analysis with SciDAVis&#8217;s <a href="/curve-fitting/">curve fitting</a> and <a href="/multi-layer-plots/">multi-layer plotting</a> tools.</li>
</ol>
<h2>Troubleshooting common issues</h2>
<h3>The import dialog shows an error or an empty project</h3>
<p>First, confirm the file is really a legacy <strong>.opj</strong> and not a renamed <strong>.opju</strong>. If the extension is correct but the import fails, the file may use features liborigin cannot parse yet — try exporting the data sheets to CSV from Origin instead.</p>
<h3>Non-English characters show as garbled symbols</h3>
<p>Origin files store text in the system&#8217;s local codepage (for example, Windows-1251 for Russian-locale files), while SciDAVis imports the raw bytes. If labels or column descriptions come out garbled, re-import with the matching codepage selected — SciDAVis offers a codepage choice for exactly this situation.</p>
<h3>Importing matrices is slow</h3>
<p>Matrix data converts element by element, so large matrices take noticeably longer than tables. Let it finish rather than killing the process — the data will arrive.</p>
<h2>What imports well, and what doesn&#8217;t</h2>
<ul>
<li><strong>Imports well:</strong> data tables, simple 2D graphs, matrices, and basic folder structure.</li>
<li><strong>May need manual cleanup:</strong> intricate multi-panel layouts, custom annotations, and worksheet formulas (which may arrive as static values).</li>
<li><strong>Not supported:</strong> .opju projects, Origin apps/plugins, and anything that depends on Origin&#8217;s scripting engine.</li>
</ul>
<p>Want the full menu reference behind these steps? The official <a href="https://highperformancecoder.github.io/scidavis-handbook/" rel="nofollow noopener" target="_blank">SciDAVis Handbook</a> documents every command and toolbar. And if you are working through a migration, browse all of our <a href="/tutorials/">tutorials</a> for plotting, fitting, and scripting walkthroughs.</p>

]]></content:encoded>
					
					<wfw:commentRss>https://scidavis.org/import-origin-opj-files/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Plot Functions in SciDAVis</title>
		<link>https://scidavis.org/function-plots/</link>
					<comments>https://scidavis.org/function-plots/#respond</comments>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Thu, 15 Oct 2026 09:32:00 +0000</pubDate>
				<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">https://scidavis.org/function-plots/</guid>

					<description><![CDATA[How to Plot Functions in SciDAVis You don&#8217;t need a data table to make a plot in SciDAVis. If you want to visualize a mathematical function — a sine wave, a Gaussian, a parametric curve — you can plot it directly from its formula. This tutorial walks you through creating function plots step by step,...]]></description>
										<content:encoded><![CDATA[<style>.content-container.site-container{max-width:var(--global-content-narrow-width,842px)!important;margin-left:auto!important;margin-right:auto!important;padding-left:30px!important;padding-right:30px!important}</style>
<h1>How to Plot Functions in SciDAVis</h1>
<p>You don&#8217;t need a data table to make a plot in SciDAVis. If you want to visualize a mathematical function — a sine wave, a Gaussian, a parametric curve — you can plot it directly from its formula. This tutorial walks you through creating function plots step by step, following the official SciDAVis handbook.</p>

<h2>Step 1: Open the New Function Plot dialog</h2>
<p>Go to <strong>File → New → New Function Plot</strong>. The faster route is the keyboard shortcut <strong>Ctrl+F</strong>, or the function-plot icon on the File toolbar. Either way, a dialog box opens where you define the mathematical expression of your function.</p>
<p>Note the difference from regular plotting: when you plot data, you first fill a table and then choose a Plot menu command. A function plot skips the table entirely — SciDAVis evaluates your formula itself and draws the curve.</p>

<h2>Step 2: Enter the expression, range, and number of points</h2>
<p>The dialog asks for three things:</p>
<ol>
<li><strong>The mathematical expression</strong> of your function, e.g. <code>sin(x)</code> or <code>x^2 - 3*x + 1</code>.</li>
<li><strong>The X range</strong> used for the plot — the interval over which the function is evaluated, e.g. from 0 to 2*pi.</li>
<li><strong>The number of points</strong> computed in this X range. More points give a smoother curve; the default is fine for smooth functions, but sharp features (spikes, discontinuities) need more.</li>
</ol>
<p>Tip: if your curve looks jagged or misses a narrow peak, don&#8217;t change the expression — increase the number of points first. Sampling density, not the formula, is usually the culprit.</p>

<h2>Step 3: Choose the coordinate system</h2>
<p>SciDAVis function plots support three coordinate systems, all defined in the same dialog:</p>
<ul>
<li><strong>Cartesian — Y(X):</strong> the classic case. Enter Y as a function of X, e.g. <code>exp(-x^2)</code> for a Gaussian.</li>
<li><strong>Parametric — (X(t), Y(t)):</strong> X and Y are each defined as functions of an independent parameter <em>m</em>. You set the range for <em>m</em> and the number of points computed in that range. This is how you draw circles, ellipses, Lissajous figures, or any curve that isn&#8217;t a function of X.</li>
<li><strong>Polar — r(theta):</strong> defined by a radius <em>R</em> and an angle <em>theta</em> (in radians). SciDAVis converts internally with <code>X = R·cos(theta)</code> and <code>Y = R·sin(theta)</code>. You can also use the parametric form: <code>R = f(t)</code> and <code>theta = f(t)</code>, with the range and point count for <em>t</em>. Cardioids, spirals and rose curves live here.</li>
</ul>

<h2>Step 4: Customize the plot</h2>
<p>Clicking OK creates a new graph window with your curve inserted as a new layer — the same kind of graph window you&#8217;d get from plotting table data. Everything from here is identical to a data plot: use the <strong>Format</strong> menu to change line styles, colors, axes, tick labels and fonts, and the <strong>Graph</strong> menu to add text labels, lines, arrows, a legend or images.</p>
<p>Want a second curve on the same axes? Use the <strong>Add Function</strong> command (Plot menu) to add another function to the existing plot instead of creating a new window. This is the clean way to overlay, say, a fit model on top of measured data — or to compare two candidate functions directly.</p>

<h2>Step 5: Combine functions with data tables</h2>
<p>Often you want both: measured data and the theoretical curve. The handbook&#8217;s recommended combined workflow is: create a table, fill it with the results of a function using the <strong>Assign Formula</strong> command, then select the columns and use a Plot menu command. This gives you a data-backed curve you can fit, differentiate or integrate — things a pure function plot can&#8217;t do.</p>
<p>As a rule of thumb: use <strong>New Function Plot (Ctrl+F)</strong> for quick visualization and teaching, and the <strong>table + Assign Formula</strong> route when the curve will feed into further analysis.</p>

<h2>Worked example: a damped oscillation</h2>
<p>Let&#8217;s put it together with a concrete case — the kind of curve physicists plot daily. Press <strong>Ctrl+F</strong>, and in the dialog enter the expression <code>exp(-0.3*x)*sin(2*pi*x)</code>, an oscillation that decays over time. Set the X range from <strong>0 to 10</strong> and the number of points to <strong>1000</strong> — a thousand points over ten units gives smooth peaks without slowing anything down.</p>
<p>After clicking OK, open the Format menu and set the line to a solid 2-pt blue, then use the Graph menu to add a text label with the formula. In under a minute you have a publication-ready figure of a damped sine wave, with no table and no external data. Try changing the damping factor from 0.3 to 0.8 and re-plotting — the envelope collapses visibly, which makes function plots excellent for building intuition before you touch real data.</p>

<h2>Quick reference</h2>
<ul>
<li><strong>New function plot:</strong> File → New → New Function Plot, or <strong>Ctrl+F</strong></li>
<li><strong>Cartesian:</strong> Y as a function of X over an X range</li>
<li><strong>Parametric:</strong> X(m) and Y(m) over a range of the parameter m</li>
<li><strong>Polar:</strong> R and theta (radians); X = R·cos(theta), Y = R·sin(theta)</li>
<li><strong>Add another curve:</strong> Plot → Add Function</li>
<li><strong>Function → data table:</strong> Table → Assign Formula, then plot the columns</li>
</ul>

<p>Ready for the next skill? Browse the full <a href="/tutorials/">SciDAVis tutorials</a> — from importing data and fitting curves to multi-layer plots and 3D surfaces.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://scidavis.org/function-plots/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Descriptive Statistics and Statistical Tests in SciDAVis</title>
		<link>https://scidavis.org/statistics/</link>
					<comments>https://scidavis.org/statistics/#respond</comments>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Thu, 15 Oct 2026 08:42:32 +0000</pubDate>
				<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">https://scidavis.org/statistics/</guid>

					<description><![CDATA[Descriptive Statistics and Statistical Tests in SciDAVis SciDAVis can summarize any table with one click: mean, standard deviation, variance, min, max and more appear in a new statistics table. What it cannot do is run hypothesis tests — there is no built-in t-test, ANOVA or normality test in SciDAVis 2.9.x. This guide shows you exactly...]]></description>
										<content:encoded><![CDATA[
<style>.content-container.site-container{max-width:var(--global-content-narrow-width,842px)!important;margin-left:auto!important;margin-right:auto!important;padding-left:30px!important;padding-right:30px!important}</style>

<style>
table.tut{border-collapse:collapse;width:100%;margin:18px 0;font-size:.95em}
table.tut th,table.tut td{border:1px solid #cbd5e1;padding:10px 12px;text-align:left;vertical-align:top}
table.tut th{background:#f1f5f9}
.tut-note{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:14px 18px;margin:22px 0}
code{background:#f1f5f9;padding:1px 6px;border-radius:4px}
</style>
<h1>Descriptive Statistics and Statistical Tests in SciDAVis</h1>
<p>SciDAVis can summarize any table with one click: mean, standard deviation, variance, min, max and more appear in a new statistics table. What it <strong>cannot</strong> do is run hypothesis tests — there is no built-in t-test, ANOVA or normality test in SciDAVis 2.9.x. This guide shows you exactly what the statistics commands produce, how to read the results table, and honest workarounds for the tests that are missing. Menu paths and output columns were verified against the SciDAVis Handbook and the current SciDAVis source code.</p>
<h2>Getting descriptive statistics for your columns</h2>
<ol>
<li>Open the table and <strong>select the column(s)</strong> you want to summarize (click a column header; <code>Ctrl</code>-click for several). You can select multiple columns in one table — one results row is created per column. Columns from different tables cannot be combined into a single statistics table.</li>
<li>Choose <code>Analysis → Statistics on Columns</code>.</li>
<li>SciDAVis creates a new table named <strong>&#8220;Column Statistics of &lt;your table&gt;&#8221;</strong> with one row per selected column.</li>
</ol>
<p>The sibling command <code>Analysis → Statistics on Rows</code> does the same thing across rows instead of columns (useful when each row is one experimental run). Both commands live in the <code>Analysis</code> menu, which appears when a table window is active.</p>
<div class="tut-note"><strong>Only numeric columns are summarized.</strong> Text columns are skipped, and empty or invalid cells are ignored rather than treated as zeros — the <code>N</code> column tells you how many valid values were actually used.</div>
<h2>Reading the results table</h2>
<p>The column-statistics table has 11 columns. Here is what each one means, with the exact headings SciDAVis uses:</p>
<table class="tut">
<thead>
<tr><th>Column</th><th>Meaning</th></tr>
</thead>
<tbody>
<tr><td><code>Col</code></td><td>Label of the summarized column</td></tr>
<tr><td><code>Rows</code></td><td>Row range of the source column, shown as <code>[1:n]</code></td></tr>
<tr><td><code>Mean</code></td><td>Arithmetic mean of the valid values</td></tr>
<tr><td><code>StandardDev</code></td><td>Standard deviation of the values (sample SD, computed with the GSL statistics routines)</td></tr>
<tr><td><code>Variance</code></td><td>Variance of the values (the square of the standard deviation)</td></tr>
<tr><td><code>Sum</code></td><td>Sum of the valid values (computed as mean × N)</td></tr>
<tr><td><code>iMax</code></td><td><strong>Row number</strong> (1-based) where the maximum value occurs</td></tr>
<tr><td><code>Max</code></td><td>Maximum value</td></tr>
<tr><td><code>iMin</code></td><td><strong>Row number</strong> (1-based) where the minimum value occurs</td></tr>
<tr><td><code>Min</code></td><td>Minimum value</td></tr>
<tr><td><code>N</code></td><td>Number of valid (non-empty) values used</td></tr>
</tbody>
</table>
<p>The row-statistics variant is similar but simpler: <code>Row | Cols | Mean | StandardDev | Variance | Sum | Max | Min | N</code> — it has no iMax/iMin columns.</p>
<div class="tut-note"><strong>Watch out for iMax/iMin:</strong> they are <em>positions</em>, not values — iMax = 7 means &#8220;the maximum sits in row 7&#8221;, not &#8220;the maximum is 7&#8221;. They count from 1, matching the row numbers you see in the table. This is handy for jumping straight to the outlier row.</div>
<h2>What the table does not give you: standard error</h2>
<p>There is no SE (standard error of the mean) column. That is easy to derive yourself, since SE = SD / √N and all three ingredients are in the table:</p>
<ol>
<li>In the statistics table, add a new column (e.g. <code>SE</code>).</li>
<li>Right-click the new column header and use <code>Set Column Values</code> with the formula <code>StandardDev / sqrt(N)</code> — SciDAVis evaluates it row by row, giving one SE per summarized column.</li>
</ol>
<p>This two-step pattern (statistics table → derived column) is the general recipe for anything beyond the built-in summaries.</p>
<h2>The honest part: no t-test, no ANOVA, no normality test</h2>
<p>Let us be direct, because this is where many tutorials mislead: <strong>SciDAVis 2.9.x has no built-in t-test, ANOVA, chi-square test or normality (Shapiro–Wilk) test</strong> — not in the Analysis menu, not in any dialog. We checked the current source code: the Analysis menu contains Statistics on Columns/Rows, FFT, correlation, convolution and fitting, and nothing else in the hypothesis-testing family. An older QtiPlot-era Handbook describes the same set. Do not go hunting for a hidden menu; it does not exist.</p>
<p>Practical alternatives, in order of convenience:</p>
<ol>
<li><strong>SciDAVis Python scripting.</strong> SciDAVis ships a Python console (<code>Scripting</code> menu). If SciPy is installed in your Python environment, you can run <code>scipy.stats.ttest_ind</code>, <code>scipy.stats.f_oneway</code> or <code>scipy.stats.shapiro</code> directly on your table data without leaving the program — see our <a href="https://scidavis.org/tutorials/python-scripting/">Python scripting tutorial</a>.</li>
<li><strong>Export and use a statistics package.</strong> <code>File → Export ASCII</code> writes your table as CSV, which drops straight into R, JASP or Excel. This is the most robust option for ANOVA with post-hoc tests, which SciPy alone handles less comfortably.</li>
<li><strong>Manual computation for simple cases.</strong> A one-sample t statistic needs only mean, SD and N — all in the statistics table — so for quick checks you can compute it in a spare column with <code>Set Column Values</code> and compare against a t-table.</li>
</ol>
<div class="tut-note"><strong>What about &#8220;Statistics on Columns&#8221; as a normality check?</strong> It is not one. Mean vs. median-style comparisons or a histogram (<code>Plot → Statistical Graphs → Histogram</code>) can hint at skew, but they are not a substitute for a real normality test. If your method section claims a Shapiro–Wilk test, run it in R or Python and say so.</div>
<h2>Example workflow: reporting &#8220;mean ± SD (n = …)&#8221;</h2>
<p>The most common use of these statistics is the methods line of a paper. Here is the full loop:</p>
<ol>
<li>Select your measurement columns → <code>Analysis → Statistics on Columns</code>.</li>
<li>Read off <code>Mean</code>, <code>StandardDev</code> and <code>N</code> for each group.</li>
<li>Report as &#8220;12.4 ± 1.1 (n = 30)&#8221; — and note whether ± is SD or SE, since the two are often confused. SciDAVis gives you SD; derive SE as shown above if that is what your field expects.</li>
<li>If groups need comparing, take the CSV export route (option 2 above) and cite the actual software used.</li>
</ol>
<h2>FAQ</h2>
<h3>Is StandardDev the sample or the population standard deviation?</h3>
<p>SciDAVis computes it with the GSL statistics routines, which use the sample formula (dividing by N−1). For the large N typical in lab data the difference is negligible, but cite it correctly if it matters for your field.</p>
<h3>Why was my column skipped by Statistics on Columns?</h3>
<p>Either the column is not numeric (text or date columns are ignored), or every cell is empty/invalid. Check the column type via <code>Table → Column Options</code>. Also make sure the column header was actually selected before opening the Analysis menu.</p>
<h3>Do empty cells count as zero?</h3>
<p>No. Invalid and empty cells are skipped entirely, and <code>N</code> reports how many valid values went into the calculation. This is the behavior you want for ragged datasets, but double-check that a genuinely-missing value isn&#8217;t hiding a data-entry mistake.</p>
<h3>Can I get statistics for only some rows of a column?</h3>
<p>Not directly — Statistics on Columns always uses the whole column. The workaround: copy the rows of interest into a new table (select rows → copy → paste) and run the statistics there. Alternatively use <code>Analysis → Statistics on Rows</code> if your layout is transposed.</p>
<h3>Where is the t-test in SciDAVis?</h3>
<p>There isn&#8217;t one, in any 2.9.x release we verified. Use the Python scripting console with SciPy, or export to CSV and test in R/JASP/Excel — and describe that step honestly in your methods.</p>
<h2>Next steps</h2>
<ul>
<li><a href="https://scidavis.org/tutorials/python-scripting/">Automate SciDAVis with Python Scripting</a> — run SciPy tests on your tables</li>
<li><a href="https://scidavis.org/importing-data/">How to Import Data into SciDAVis</a> — clean numeric columns summarize correctly</li>
<li><a href="https://scidavis.org/fft-analysis/">FFT Frequency Analysis</a> — the other heavyweight of the Analysis menu</li>
<li><a href="https://scidavis.org/curve-fitting/">Nonlinear Curve Fitting</a> — when a model describes your data better than a mean</li>
<li><a href="https://scidavis.org/tutorials/">All SciDAVis tutorials</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://scidavis.org/statistics/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Add Error Bars in SciDAVis</title>
		<link>https://scidavis.org/error-bars/</link>
					<comments>https://scidavis.org/error-bars/#respond</comments>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Thu, 15 Oct 2026 08:42:31 +0000</pubDate>
				<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">https://scidavis.org/error-bars/</guid>

					<description><![CDATA[How to Add Error Bars in SciDAVis Error bars turn a plain line or scatter plot into an honest picture of your measurement: they show how far each point could plausibly move. In SciDAVis 2.9.x you add them with the Graph → Add Error Bars&#8230; command, which opens the Error Bars dialog. This guide walks...]]></description>
										<content:encoded><![CDATA[
<style>.content-container.site-container{max-width:var(--global-content-narrow-width,842px)!important;margin-left:auto!important;margin-right:auto!important;padding-left:30px!important;padding-right:30px!important}</style>

<style>
table.tut{border-collapse:collapse;width:100%;margin:18px 0;font-size:.95em}
table.tut th,table.tut td{border:1px solid #cbd5e1;padding:10px 12px;text-align:left;vertical-align:top}
table.tut th{background:#f1f5f9}
.tut-note{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:14px 18px;margin:22px 0}
code{background:#f1f5f9;padding:1px 6px;border-radius:4px}
</style>
<h1>How to Add Error Bars in SciDAVis</h1>
<p>Error bars turn a plain line or scatter plot into an honest picture of your measurement: they show how far each point could plausibly move. In SciDAVis 2.9.x you add them with the <strong>Graph → Add Error Bars&#8230;</strong> command, which opens the <em>Error Bars</em> dialog. This guide walks through the three supported error sources — an existing column, a percentage of the data, or the standard deviation — and explains what SciDAVis cannot do (asymmetric errors). Menu paths and dialog labels were checked against the official SciDAVis Handbook and the current SciDAVis source code.</p>
<h2>Where do the error values come from?</h2>
<p>The <em>Error Bars</em> dialog offers three ways to define the bar half-width E around each data value V (bars always run from V−E to V+E, i.e. they are symmetric):</p>
<table class="tut">
<thead>
<tr><th>Source</th><th>What SciDAVis does</th><th>Best for</th></tr>
</thead>
<tbody>
<tr><td><strong>Existing column</strong></td><td>Reads the error width E row-by-row from a column you choose in the project</td><td>Repeated measurements: paste or compute your own SD, SE or confidence-interval half-widths</td></tr>
<tr><td><strong>Percent of data (%)</strong></td><td>Sets E = V × (percent / 100) for every point, and <strong>creates a new column</strong> in the table holding those values</td><td>Instrument tolerances quoted as a relative percentage, e.g. &#8220;±5 % of reading&#8221;</td></tr>
<tr><td><strong>Standard Deviation of Data</strong></td><td>Computes one standard deviation of the plotted values and uses it as E for every point, <strong>creating a new column</strong> in the table</td><td>A quick visual spread indicator when the points are centered around an average</td></tr>
</tbody>
</table>
<div class="tut-note"><strong>SD vs. SE:</strong> the &#8220;Standard Deviation of Data&#8221; option shows the spread of the data itself (SD), not the uncertainty of the mean (SE = SD / √N). If your lab report needs standard <em>error</em> bars, compute a column of SE values yourself (SD divided by the square root of the number of repeats) and use the <em>Existing column</em> option. The auto-generated column can be edited like any other column afterwards.</div>
<h2>Step-by-step: adding error bars to a plot</h2>
<ol>
<li>Create a 2D plot of your data first (e.g. select a Y column and choose <code>Plot → Line</code> or <code>Plot → Scatter</code>). Error bars are added to an existing curve — they cannot be created on an empty plot.</li>
<li>Click the plot window to make it active, then choose <code>Graph → Add Error Bars...</code>.</li>
<li>In the <em>Error Bars</em> dialog, the <strong>&#8220;Add Error Bars to&#8221;</strong> drop-down lists the curves on the plot — pick the one you want.</li>
<li>Tick <strong>Y Error Bars</strong> (vertical bars), <strong>X Error Bars</strong> (horizontal bars), or both.</li>
<li>Under <strong>&#8220;Source of errors&#8221;</strong>, choose <em>Percent of data (%)</em>, <em>Standard Deviation of Data</em>, or <em>Existing column</em> (and pick the column if you chose the latter).</li>
<li>Click <strong>Add</strong> — the bars appear on the plot. Then click <strong>Close</strong> to dismiss the dialog.</li>
</ol>
<div class="tut-note"><strong>Dialog quirk (from the Handbook):</strong> both the <em>Add</em> and the <em>OK</em> button apply the error bars, so after clicking <em>Add</em> you should close the dialog with <em>Cancel/Close</em> — otherwise you may add the bars twice.</div>
<h2>Using your own error column (SD, SE or confidence intervals)</h2>
<p>This is the most flexible route, and the one researchers use most:</p>
<ol>
<li>In your table, add a column next to the data with one error value per row — for example the standard deviation of three repeated readings, or a 95 % confidence-interval half-width. Tip: mark it clearly, e.g. name it <code>y_sd</code>.</li>
<li>Optionally, classify it via <code>Table → Set Column As → Y error</code> (or <code>→ X error</code> for horizontal bars). This designation marks the column&#8217;s role but is not strictly required by the dialog.</li>
<li>Open <code>Graph → Add Error Bars...</code>, select <em>Existing column</em>, and choose your error column from the list.</li>
</ol>
<p>The error column must have <strong>the same number of rows</strong> as the data column; otherwise SciDAVis shows an error (&#8220;The selected columns have different numbers of rows!&#8221;). Also note that error bars are drawn for every plotted point, so trimming your data range in the table changes which bars appear.</p>
<h2>Styling: width, caps and color</h2>
<p>Error bars added through the dialog are drawn <strong>thin (1 px), black, with end caps on both the plus and minus sides</strong>, passing through each data point — these are the built-in defaults and the dialog offers no width, color or cap-length controls. Keep that in mind when designing a figure: the bars are deliberately minimal, which suits most journal styles. If your bars are hard to see, enlarge the plot or thicken the data curve itself in the curve&#8217;s properties dialog so the black caps stand out against it.</p>
<h2>Worked example: a physics lab measurement</h2>
<p>Say you measured the period of a pendulum 5 times at each of 6 string lengths, and the table holds the mean period T in one column and the standard deviation of the 5 repeats in a second column:</p>
<ol>
<li>Plot string length (X) vs. mean period (Y) as a scatter plot.</li>
<li><code>Graph → Add Error Bars...</code> → tick <em>Y Error Bars</em> → <em>Existing column</em> → choose your SD column → <strong>Add</strong> → <strong>Close</strong>.</li>
<li>The plot now shows each mean with ±SD bars — exactly what a lab report expects. If your supervisor wants ±SE instead, add a column computing SD / √5 and use that column as the source.</li>
</ol>
<h2>What SciDAVis cannot do: asymmetric error bars</h2>
<p>To be explicit: SciDAVis error bars are <strong>always symmetric</strong> (V−E to V+E). There is no built-in support for asymmetric errors (different plus and minus widths, e.g. from Poisson counting statistics or log-normal fits). The dialog accepts a single error column per direction. If your analysis genuinely needs asymmetric bars, compute them outside SciDAVis (e.g. in R or Python) and import the finished figure, or draw the interval as a separate shaded curve — do not fake it by averaging the two sides, since that misrepresents the uncertainty.</p>
<h2>FAQ</h2>
<h3>Can I add error bars to a function curve?</h3>
<p>No. SciDAVis refuses with the message &#8220;This feature is not available for user defined function curves!&#8221; — error bars require a table column behind the curve. Plot your computed values as a data column first, then add the bars.</p>
<h3>Why are my error bars invisible?</h3>
<p>Three usual causes: the error column contains zeros or missing values; the bars are tiny relative to the axis scale (zoom in to check); or you clicked <em>Add</em> and then <em>OK</em>, which is harmless but adds the same bars twice — they overlap and look identical, not invisible. Also confirm the error column has the same row count as the data column.</p>
<h3>Can I show X and Y error bars at the same time?</h3>
<p>Yes — tick both <em>X Error Bars</em> and <em>Y Error Bars</em> in the dialog before clicking <em>Add</em>. You can also run the dialog twice with different sources (e.g. percent for X, existing SD column for Y).</p>
<h3>Do the &#8220;Percent&#8221; and &#8220;Standard Deviation&#8221; options change my data?</h3>
<p>They don&#8217;t touch your data columns, but they do <strong>append a new column</strong> to the active table with the computed error values. You can rename, edit or delete that column like any other — the bars already on the plot keep a reference to it, though.</p>
<h2>Next steps</h2>
<ul>
<li><a href="https://scidavis.org/curve-fitting/">Nonlinear Curve Fitting</a> — fit a model through data that carries uncertainties</li>
<li><a href="https://scidavis.org/importing-data/">How to Import Data into SciDAVis</a> — bring in repeated measurements cleanly</li>
<li><a href="https://scidavis.org/exporting-plots/">Export Publication-Quality Figures</a> — prepare the final figure for your report</li>
<li><a href="https://scidavis.org/multi-layer-plots/">Multi-Layer Graphs</a> — compare runs with and without error bars side by side</li>
<li><a href="https://scidavis.org/tutorials/">All SciDAVis tutorials</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://scidavis.org/error-bars/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>3D Scatter and Surface Plots in SciDAVis: A Complete Guide</title>
		<link>https://scidavis.org/3d-plots/</link>
					<comments>https://scidavis.org/3d-plots/#respond</comments>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Thu, 15 Oct 2026 08:41:47 +0000</pubDate>
				<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">https://scidavis.org/3d-plots/</guid>

					<description><![CDATA[3D Scatter and Surface Plots in SciDAVis: A Complete Guide SciDAVis renders all of its 3D plots with OpenGL (via the Qwt3D library), so you can rotate, zoom and pan a plot with the mouse instead of redrawing it from scratch. This guide covers the two main data paths in SciDAVis 2.9.x: 3D scatter plots...]]></description>
										<content:encoded><![CDATA[
<style>.content-container.site-container{max-width:var(--global-content-narrow-width,842px)!important;margin-left:auto!important;margin-right:auto!important;padding-left:30px!important;padding-right:30px!important}</style>

<style>
table.tut{border-collapse:collapse;width:100%;margin:18px 0;font-size:.95em}
table.tut th,table.tut td{border:1px solid #cbd5e1;padding:10px 12px;text-align:left;vertical-align:top}
table.tut th{background:#f1f5f9}
.tut-note{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:14px 18px;margin:22px 0}
code{background:#f1f5f9;padding:1px 6px;border-radius:4px}
</style>
<h1>3D Scatter and Surface Plots in SciDAVis: A Complete Guide</h1>
<p>SciDAVis renders all of its 3D plots with OpenGL (via the Qwt3D library), so you can rotate, zoom and pan a plot with the mouse instead of redrawing it from scratch. This guide covers the two main data paths in SciDAVis 2.9.x: <strong>3D scatter plots from XYZ columns</strong> in a table, and <strong>3D surface plots from a matrix</strong> or an analytical function. Menu paths and dialog names below were checked against the official SciDAVis Handbook and the current SciDAVis source code.</p>
<h2>Which 3D plots does SciDAVis support?</h2>
<p>The available plot types depend on what kind of window is active, because 3D data can live in either a <strong>table</strong> (columns of X, Y, Z values) or a <strong>matrix</strong> (a regular grid of Z values). The table below summarizes every option.</p>
<table class="tut">
<thead>
<tr><th>Plot type</th><th>Data source</th><th>Menu path</th></tr>
</thead>
<tbody>
<tr><td>Scatter (dots, cones, cross-hairs)</td><td>Table with X/Y/Z columns <em>or</em> matrix</td><td><code>Plot → 3D Plot → Scatter</code> (table active) · <code>3D Plot → Scatter</code> (matrix active)</td></tr>
<tr><td>3D Bars</td><td>Table with X/Y/Z columns <em>or</em> matrix</td><td><code>Plot → 3D Plot → Bars</code> (table active) · <code>3D Plot → Bars</code> (matrix active)</td></tr>
<tr><td>Ribbon</td><td>Table (single selected column)</td><td><code>Plot → 3D Plot → Ribbon</code></td></tr>
<tr><td>Trajectory</td><td>Table with X/Y/Z columns</td><td><code>Plot → 3D Plot → Trajectory</code></td></tr>
<tr><td>Wire Frame / Hidden Lines / Polygons / Wire Surface</td><td>Matrix</td><td><code>3D Plot → 3D Wire Frame</code> etc. (visible only when a matrix is selected)</td></tr>
<tr><td>Contour + Color Fill / Contour Lines / Gray Scale Map</td><td>Matrix</td><td><code>3D Plot → Contour+Color Fill</code> etc.</td></tr>
<tr><td>Surface from a function z = f(x, y)</td><td>Analytical formula</td><td><code>File → New → New Surface 3D Plot</code> (<code>Ctrl+Alt+Z</code>)</td></tr>
</tbody>
</table>
<div class="tut-note"><strong>Key distinction:</strong> scatter-style plots work from ordinary table columns, while surface-style plots need a <em>matrix</em> — a regular rectangular grid of values. The top-level <code>3D Plot</code> menu in the menu bar is only active when a matrix window is selected; when a table is active you will find 3D options under <code>Plot → 3D Plot</code>.</div>
<h2>Creating a 3D scatter plot from three columns</h2>
<p>A 3D scatter plot in SciDAVis is built from <strong>three columns designated X, Y and Z</strong>. The column designation is what tells SciDAVis which column is the abscissa, the second abscissa and the plotted value (see the Handbook&#8217;s <em>Table → Set Column As</em> commands).</p>
<ol>
<li>Create a new table (<code>File → New → New Table</code>) and enter your data in three columns — for example time in column 1, temperature in column 2 and pressure in column 3.</li>
<li>Select the first column and choose <code>Table → Set Column As → X</code>.</li>
<li>Select the second column and choose <code>Table → Set Column As → Y</code>.</li>
<li>Select the third column and choose <code>Table → Set Column As → Z</code>. The header will show the designations so you can verify them.</li>
<li><strong>Click the Z column header</strong> to select it (this is the column whose designation must be Z).</li>
<li>Choose <code>Plot → 3D Plot → Scatter</code>. SciDAVis opens a new 3D window with your points.</li>
</ol>
<div class="tut-note"><strong>Common error:</strong> if you see <em>&#8220;Please select a Z column for this operation!&#8221;</em> or <em>&#8220;You need to define a X/Y column first!&#8221;</em>, it means the designations are missing or the selected column is not the Z column. Go back to <code>Table → Set Column As</code> and set X, Y and Z again, then make sure the Z column header is the one selected before plotting.</div>
<p>Once the plot exists, drag with the mouse to rotate it, use the scroll wheel or right-button drag to zoom, and middle-button drag to pan. If the plot looks empty, check that your columns contain numbers rather than text — only numeric columns can be plotted.</p>
<h2>Creating a 3D surface plot from a matrix</h2>
<p>Surface plots (wire frame, hidden lines, polygons) are drawn from a <strong>matrix</strong>, not from columns. Use this path when your data already sits on a regular grid — for example a response measured over a grid of (temperature × concentration) combinations.</p>
<ol>
<li>Create a matrix: <code>File → New → New Matrix</code>. A new matrix starts at 32 × 32 cells; adjust it with <code>Matrix → Set Dimensions...</code>.</li>
<li>Fill the matrix with your Z values (each cell is one grid point).</li>
<li>Click the matrix window so it is the active window. The top-level <code>3D Plot</code> menu in the menu bar becomes available.</li>
<li>Choose a surface style, e.g. <code>3D Plot → 3D Wire Frame</code>, <code>3D Plot → 3D Hidden Lines</code>, <code>3D Plot → 3D Polygons</code> or <code>3D Plot → 3D Wire Surface</code>.</li>
</ol>
<p>The same menu offers the 2.5D variants: <code>Contour+Color Fill</code>, <code>Contour Lines</code> and <code>Gray Scale Map</code> draw color-map versions of the matrix data. Double-clicking the plotting area of a contour plot opens the <em>Contour Options</em> dialog for colormap and line settings.</p>
<div class="tut-note"><strong>Scattered data?</strong> A surface plot needs a regular grid. If your measurements are scattered points, grid them first: select the relevant table columns and use <code>Table → Convert to Matrix</code>, then plot the matrix. SciDAVis does not interpolate scattered points into a grid for you — the gridding step is yours.</div>
<h2>Plotting a surface from a formula</h2>
<p>For a quick mathematical surface such as z = sin(x)·cos(y), skip the data entirely:</p>
<ol>
<li>Choose <code>File → New → New Surface 3D Plot</code> (<code>Ctrl+Alt+Z</code>).</li>
<li>The <em>Surface</em> dialog asks for the formula z = f(x, y) plus the X, Y and Z limits. Only Cartesian coordinates are supported.</li>
<li>Click OK to render the surface. You can edit it later by double-clicking the plot.</li>
</ol>
<h2>Rotating, zooming and restyling the plot</h2>
<p>Every 3D window has a dedicated <strong>3D Surface toolbar</strong> (shown automatically with the plot). The most useful controls are:</p>
<ul>
<li><strong>Rotate / zoom / pan</strong> — drag directly in the plot with the mouse. This is the fastest way to inspect a surface.</li>
<li><strong>Reset rotation</strong> and <strong>Fit frame to window</strong> — recover a clean default view after experimenting.</li>
<li><strong>Frame / Box / No axes</strong> and the six <strong>grid</strong> buttons (front, back, left, right, ceiling, floor) — control which axis frame and wall grids are drawn.</li>
<li><strong>Enable perspective</strong> — toggles perspective projection on and off.</li>
<li><strong>Dots / Cones / Cross Hairs</strong> — switch the symbol style of a 3D scatter plot. For cones and cross-hairs you can fine-tune the drawing parameters by double-clicking the plotting area.</li>
<li><strong>3D Wire Frame / 3D Hidden Lines / 3D Polygons / 3D Wire Surface</strong> — switch the style of a surface plot after it is created, plus <strong>Floor Data Projection</strong> and <strong>Floor Isolines</strong> extras.</li>
</ul>
<p>Double-clicking anywhere on a 3D plot opens the <strong>Surface Plot Options</strong> dialog, where you can change the title, axis scales and labels, grids, legend and the colors of the plot elements — the same dialog the Handbook calls the &#8220;3D Plots Settings&#8221; dialog.</p>
<h2>Exporting a 3D plot</h2>
<p>With the 3D window active, use <code>File → Export</code> to save the view as an image (PNG, BMP, PDF and others). One honest limitation to know: a 3D export is a <strong>raster snapshot of the OpenGL view</strong>, not true vector graphics, so export at a large window size if you need the figure for print. For publication-ready 2D figures see our <a href="https://scidavis.org/exporting-plots/">export guide</a>.</p>
<h2>Limitations worth knowing</h2>
<ul>
<li>3D plots need a working OpenGL setup. On very old or headless machines the 3D window may render blank; updating your graphics driver usually fixes it.</li>
<li>Surface plots require matrix data — three columns of scattered X/Y/Z points cannot be plotted directly as a surface.</li>
<li>3D plots are single-window plots; they cannot be combined into multi-layer 2D graphs.</li>
<li>Contour plots derive from matrix data only; double-click the plotting area to reach the <em>Contour Options</em> dialog.</li>
</ul>
<h2>FAQ</h2>
<h3>Does SciDAVis support 3D scatter plots with three columns?</h3>
<p>Yes. Designate the columns with <code>Table → Set Column As → X</code>, <code>→ Y</code> and <code>→ Z</code>, select the Z column, then choose <code>Plot → 3D Plot → Scatter</code>. The three-column setup is the standard way to feed XYZ data into a 3D scatter plot.</p>
<h3>Why is the 3D Plot menu grayed out?</h3>
<p>The top-level <code>3D Plot</code> menu is only active when a <strong>matrix</strong> window is selected. If a table is active, the menu is unavailable — use <code>Plot → 3D Plot</code> instead. Click the matrix window first to enable the matrix variants.</p>
<h3>How do I rotate a 3D plot?</h3>
<p>Just drag inside the plot with the mouse (left button rotates). Scroll to zoom and use the middle button to pan. The 3D Surface toolbar&#8217;s <em>Reset rotation</em> button restores the default view.</p>
<h3>Can I change scatter points from dots to something else?</h3>
<p>Yes — with the 3D scatter window active, the 3D Surface toolbar offers <em>Dots</em>, <em>Cones</em> and <em>Cross Hairs</em> styles. For cones and cross-hairs, double-click the plotting area to adjust their drawing parameters.</p>
<h2>Next steps</h2>
<ul>
<li><a href="https://scidavis.org/importing-data/">How to Import Data into SciDAVis</a> — get your XYZ measurements into a table first</li>
<li><a href="https://scidavis.org/multi-layer-plots/">Multi-Layer Graphs</a> — combine multiple 2D views of the same data</li>
<li><a href="https://scidavis.org/exporting-plots/">Export Publication-Quality Figures</a> — save your 3D view at print resolution</li>
<li><a href="https://scidavis.org/curve-fitting/">Nonlinear Curve Fitting</a> — fit a model before or after visualizing</li>
<li><a href="https://scidavis.org/tutorials/">All SciDAVis tutorials</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://scidavis.org/3d-plots/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Multi-Peak Curve Fitting for Spectroscopy Data in SciDAVis</title>
		<link>https://scidavis.org/fitting-spectroscopy/</link>
					<comments>https://scidavis.org/fitting-spectroscopy/#respond</comments>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Thu, 15 Oct 2026 08:37:03 +0000</pubDate>
				<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">https://scidavis.org/fitting-spectroscopy/</guid>

					<description><![CDATA[Multi-Peak Curve Fitting for Spectroscopy Data in SciDAVis Real spectra are rarely a single clean peak. Raman bands overlap, XPS envelopes hide two oxidation states under one hump, and chromatograms merge shoulders into their neighbors. Deconvolving them means fitting a sum of peak functions and reading the positions, widths, and areas of the components. SciDAVis...]]></description>
										<content:encoded><![CDATA[
<style>.content-container.site-container{max-width:var(--global-content-narrow-width,842px)!important;margin-left:auto!important;margin-right:auto!important;padding-left:30px!important;padding-right:30px!important}</style>

<style>
table.tut{border-collapse:collapse;width:100%;margin:18px 0;font-size:.95em}
table.tut th,table.tut td{border:1px solid #cbd5e1;padding:10px 12px;text-align:left;vertical-align:top}
table.tut th{background:#f1f5f9}
.tut-note{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:14px 18px;margin:22px 0}
code{background:#f1f5f9;padding:1px 6px;border-radius:4px}
</style>
<h1>Multi-Peak Curve Fitting for Spectroscopy Data in SciDAVis</h1>
<p>Real spectra are rarely a single clean peak. Raman bands overlap, XPS envelopes hide two oxidation states under one hump, and chromatograms merge shoulders into their neighbors. Deconvolving them means fitting a <strong>sum of peak functions</strong> and reading the positions, widths, and areas of the components. SciDAVis gives you two honest tools for this: a guided <strong>multi-peak quick fit</strong> and the full <strong>Fit Wizard</strong> for mixed or complex models.</p>
<div class="tut-note"><strong>What this tutorial does not promise.</strong> SciDAVis 2.9.x has no automatic peak-finder and no one-click baseline-subtraction tool, and the Fit Wizard offers no min/max bounds on parameters. Every technique below works within those real limits — we will not describe buttons that do not exist.</div>
<h2>Step 1 — Prepare the spectrum: baseline first</h2>
<p>A drifting baseline corrupts every peak parameter, especially areas. Handle it before or during the fit:</p>
<ul>
<li><strong>Quick route:</strong> every built-in peak function in SciDAVis carries a <code>y0</code> offset parameter, so a flat baseline is absorbed automatically during the fit.</li>
<li><strong>Better route:</strong> if the baseline slopes or curves, fit it <em>together</em> with the peaks in the Fit Wizard — e.g. a sum of a linear term plus your peaks — rather than trying to subtract it by hand beforehand. Subtracting an imperfect baseline by eye and then fitting the residue is the most common source of biased areas.</li>
<li><strong>Sanity check:</strong> zoom into peak-free regions of the spectrum. If the fitted baseline misses them visibly, the model is wrong — add a slope term or restrict the fit range before trusting any area.</li>
</ul>
<h2>Step 2 — Pick the right peak model</h2>
<p>The two workhorse line shapes, exactly as defined in the official Handbook:</p>
<table class="tut">
<tr><th style="width:22%">Model</th><th>Parameters</th><th>Use it when…</th></tr>
<tr><td><strong>Gaussian</strong></td><td><code>A</code> = height, <code>w</code> = width, <code>xc</code> = center, <code>y0</code> = Y offset</td><td>Broadening is dominated by instrumental resolution or Doppler/thermal effects — typical for Raman bands, XRD reflections, and chromatography peaks.</td></tr>
<tr><td><strong>Lorentzian</strong></td><td><code>A</code> = area, <code>w</code> = width, <code>xc</code> = center, <code>y0</code> = Y offset</td><td>Broadening is dominated by lifetime/pressure (collisional) effects — typical for IR absorption lines and NMR resonances. Note the <code>A</code> here means <em>area</em>, not height.</td></tr>
</table>
<p>Rule of thumb: start with Gaussian for condensed-phase vibrational spectra and chromatography, Lorentzian for gas-phase and magnetic-resonance lines. When both broadening mechanisms matter, the rigorous answer is a Voigt profile — which SciDAVis does not ship built-in; approximate it in the Fit Wizard with a custom expression or decide which single shape dominates (see FAQ).</p>
<h2>Step 3 — The multi-peak quick fit</h2>
<p>For the common case — <strong>N peaks of the same shape</strong> — SciDAVis has a guided path:</p>
<ol>
<li>Plot your spectrum and make the plot window active.</li>
<li>Go to <code>Quick Fit → Fit Multipeak → Gaussian</code> (or <code>→ Lorentzian</code>).</li>
<li>Enter the <strong>number of peaks</strong> you expect.</li>
<li>For each peak: click one data point near the peak top on the plot, then press <strong>ENTER</strong> to validate the choice. These clicks are only <em>initial guesses</em> for the centers — they do not need to be exact.</li>
<li>SciDAVis runs the least-squares fit, writes the results to the <strong>log window</strong>, draws the fitted curve on the plot, and creates a table storing the fit (find it in the project explorer — it is hidden by default).</li>
</ol>
<p>This is the fastest route from &#8220;overlapping hump&#8221; to &#8220;two centers and two areas,&#8221; and for many routine spectra it is all you need.</p>
<h2>Step 4 — Mixed models in the Fit Wizard</h2>
<p>When peaks need <strong>different shapes</strong> — say a Gaussian for one band and a Lorentzian for its neighbor — or you need a baseline term included, open the <strong>Fit Wizard</strong> (<code>Analysis → Fit Wizard</code>, or <code>Ctrl+Y</code>). Per the Handbook, the wizard works in two stages:</p>
<ul>
<li><strong>Stage 1 — the model:</strong> pick functions from the selector (built-in set, your saved functions) and <em>add</em> their expressions, or type your own analytical expression in the bottom half of the dialog. Then list the parameters to fit as a comma-separated list.</li>
<li><strong>Stage 2 — the parameters:</strong> give an <strong>initial guess for every parameter</strong>. This is the single most important step: quick-fit commands use default guesses and can fail to converge if they start far from the answer; the wizard lets you seed each center, width, and height from what you see on the plot.</li>
<li><strong>Weighting:</strong> the second tab offers <em>No weighting</em> (default), <em>Instrumental</em> (uses your Y-error bars — add them to the curve first), <em>Statistical</em> (weights from the square roots of the data), and <em>Arbitrary Dataset</em> (your own weight column). Use Instrumental whenever you have real error bars; it is the statistically correct choice.</li>
<li><strong>Output:</strong> in the <em>Custom Output</em> tab choose <em>Uniform X Function</em> for a smooth model curve or <em>Same X as Fitting Data</em> for a table of fitted values at your actual X points — the latter is what you want for residual analysis.</li>
</ul>
<div class="tut-note"><strong>Convergence strategy (no parameter bounds available).</strong> The wizard lets you set the algorithm, tolerance, and iteration count, but not min/max bounds. Work around this the way spectroscopists actually do: (1) seed centers from the multi-peak click workflow, (2) fit the strong, isolated peaks first, (3) then add the weak/shoulder peaks with the strong ones as starting values, and (4) keep the iteration count generous — a fit that stops early on iterations is not a converged fit.</div>
<h2>Step 5 — Judge the fit with residuals</h2>
<p>A pretty overlay curve proves nothing. Open the fit table (project explorer), add a column with <code>data − fit</code> at each X, and plot it:</p>
<ul>
<li><strong>Good fit:</strong> residuals scatter randomly around zero with no visible structure — the model has captured everything systematic.</li>
<li><strong>Wavy or humped residuals:</strong> a component is missing or the wrong line shape is in use. Add a peak or switch Gaussian ↔ Lorentzian for the suspect band.</li>
<li><strong>Residuals fanning out with intensity:</strong> your weighting is wrong — switch to Instrumental weighting with real error bars.</li>
<li><strong>One region stubbornly off:</strong> restrict the fit range to exclude it, or add a baseline term (Step 1) rather than forcing peaks to absorb the error.</li>
</ul>
<h2>Worked example — two overlapping Raman bands</h2>
<p>Imagine a Raman spectrum with a broad envelope around 1,350–1,450 cm<sup>−1</sup> that you suspect hides two bands (a common D/G-region situation in carbon materials):</p>
<ol>
<li>Plot the spectrum; check the baseline in the flat regions on both sides of the envelope. It is roughly flat, so the built-in <code>y0</code> offset will do.</li>
<li><code>Quick Fit → Fit Multipeak → Gaussian</code>, number of peaks = 2. Click near each visible shoulder top, ENTER each time.</li>
<li>Read the log window: two centers (<code>xc</code>), widths (<code>w</code>), heights (<code>A</code>). Plot residuals from the hidden fit table — they scatter randomly. Done in under two minutes.</li>
<li>If residuals showed structure, you would switch to the Fit Wizard: same two Gaussians <em>plus</em> a linear baseline term, seeded with the quick-fit results as initial guesses, with <em>Same X as Fitting Data</em> output for a second residual check.</li>
</ol>
<h2>FAQ</h2>
<h3>How do I know how many peaks to fit?</h3>
<p>Start from chemistry, not statistics: how many components does the sample plausibly contain? Then check the residuals — systematic structure after fitting N peaks argues for N+1. Fitting more peaks than the data supports gives beautiful overlays with meaningless, highly correlated parameters.</p>
<h3>Gaussian or Lorentzian — how do I choose?</h3>
<p>Match the broadening physics (Step 2). If unsure, fit both and compare residuals and parameter uncertainties in the log window — but do not mix shapes without a physical reason, or you are just adding knobs.</p>
<h3>Can I constrain a parameter to a range?</h3>
<p>SciDAVis 2.9.x does not offer min/max bounds in the Fit Wizard. Control the fit through good initial guesses, staged fitting (strong peaks first), and sensible weighting instead.</p>
<h3>Does SciDAVis have a Voigt profile built in?</h3>
<p>No. Approximate it with a custom expression in the Fit Wizard, or decide which broadening mechanism dominates and use the corresponding single shape — for most routine work the difference is smaller than the experimental noise.</p>
<h2>Next steps</h2>
<ul>
<li><a href="https://scidavis.org/curve-fitting/">Curve Fitting in SciDAVis</a> — single-function fits and the Fit Wizard in depth</li>
<li><a href="https://scidavis.org/fft-analysis/">FFT Frequency Analysis in SciDAVis</a> — find hidden periodicities before fitting</li>
<li><a href="https://scidavis.org/importing-data/">Importing Data into SciDAVis</a> — get spectra from instrument files into tables</li>
<li><a href="https://scidavis.org/exporting-plots//">Exporting Publication-Quality Figures</a> — turn fitted spectra into journal figures</li>
<li><a href="https://scidavis.org/tutorials/">All SciDAVis Tutorials</a> — back to the tutorial hub</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://scidavis.org/fitting-spectroscopy/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
