Nice graph - anybody knows what program was used to plot it? - Page 1
Forum section: electronics / projects

author: dmendesf
author_rank: Frequent Contributor
timestamp: October 15, 2025, 06:14:11 am
content: I´m almost sure I downloaded this graph from this forum but forgot the most important question: What program was used to plot it? I fing it really nice... If nybody recognises the tool used please reply.Daniel

author: Ian.M
author_rank: Super Contributor
timestamp: October 15, 2025, 06:54:05 am
content: Impossible to tell. However that style of graph is certainly within the capabilities of Microsoft Excel,(even as far back as Excel 97), and given the source data, it wouldn't take more than half an hour to duplicate it, formatted close to identically.

author: brucehoult
author_rank: Super Contributor
timestamp: October 15, 2025, 07:24:08 am
content: Quote from: Ian.M on October 15, 2025, 06:54:05 amHeck, given the source data in e.g. a csv or tsv, I could duplicate that, so accurately as to be indistinguishable, in a similar or less time, writing pure PostScript. Figuring out what the typeface is might be the slowest part.

author: Whales
author_rank: Super Contributor
timestamp: October 15, 2025, 07:24:51 am
content: To make it worse: the kerning of the font is all over the place. It looks like it was made with one font, exported as a PDF/html/svg, then viewed with a replacement font.The final font could be Liberation Sans, so maybe it was viewed on Linux? But that doesn't help

author: brucehoult
author_rank: Super Contributor
timestamp: October 15, 2025, 07:30:26 am
content: Actually, it's probably just Calibri, which apparently became the default typeface in Office 2007, including Excel.I haven't used Excel since version 4 lol. And Word 5.1a. (Both Mac versions)

author: brucehoult
author_rank: Super Contributor
timestamp: October 15, 2025, 07:37:48 am
content: Yeah the kerning is weird. Also, very strange to use apparently an en dash for negative numbers instead of a hyphen or true U+2212 minus sign. I don't know of anything that does that as standard (as it's not!) but you could use a custom number format in Excel and many other programs.

author: thephil
author_rank: Regular Contributor
timestamp: October 15, 2025, 08:29:44 am
content: The graph itself seems pretty standard to me – almost any graphing tool will be able to produce something like it so I am trying to understand, what exactly you are searching for:Why is it important to you what software was used? Are you looking for specific functionality/format/...? Is there something about the data in the graph and you are trying to find the original source? Something else?

author: RoGeorge
author_rank: Super Contributor
timestamp: October 15, 2025, 08:39:00 am
content: Try a reverse search of the attached image, maybe you find again the original poster/topic, and ask there how the plot was made.

author: radiolistener
author_rank: Super Contributor
timestamp: October 15, 2025, 01:28:24 pm
content: Octave

author: brucehoult
author_rank: Super Contributor
timestamp: October 15, 2025, 01:43:10 pm
content: That's clearly completely different.It doesn't have the heavier grid lines on halves and lighter lines on 1/10ths on the horizontal scale. The tick marks are on the inside not the outside. And far too many grid lines on the vertical scale. As well as more minor features.

author: radiolistener
author_rank: Super Contributor
timestamp: October 15, 2025, 02:41:45 pm
content: is this better?Code:x = 0:0.01:5;y = zeros(size(x));for i = 1:length(x)if x(i) <= 3y(i) = 1 - 4*(x(i)/3) + 0.1*randn();elseif x(i) <= 3.5y(i) = -3 + 0.1*randn();elsey(i) = -3 + (5+3)*(x(i)-3.5)/(5-3.5) + 0.1*randn();endend% Create figure with white backgroundfigure('Color','w');% Create axes with gray backgroundax = axes('Color',[0.9 0.9 0.9]);hold ongrid on% Plot the curveplot(x, y, 'b', 'LineWidth', 1) % blue line% Axis limitsxlim([0 5])ylim([-6 6])% Axis labelsxlabel('Vset ', 'FontSize', 18)ylabel('Error [ppm FS]', 'FontSize', 18)set(gca, 'FontSize', 18)% Major and minor ticks for Xset(gca, 'XTick', 0:0.5:5) % major ticksset(gca, 'XMinorTick', 'on')% Y axis ticksset(gca, 'YTick', -6:1:6) % Y ticks step 1% Enable grid for minor ticks%grid minorgrid onset (gca, 'yminorgrid', 'off')set (gca, 'xminorgrid', 'on')set (gca, 'gridcolor', [0.1 0.1 0.1]);set (gca, 'gridalpha', 0.8);set (gca, 'minorgridcolor', [0.5 0.5 0.5]);set (gca, 'minorgridalpha', 0.6);

author: SiliconWizard
author_rank: Super Contributor
timestamp: October 15, 2025, 04:09:20 pm
content: Or just use gnuplot. Make a template to your liking, and reuse ad libitum.

author: KE5FX
author_rank: Super Contributor
timestamp: October 15, 2025, 05:50:42 pm
content: Quote from: brucehoult on October 15, 2025, 07:37:48 amI actually do that in many/most places in TimeLab, because the default minus sign in the font I use is far too narrow.Font handling and text output in Windows is just terrible in general. GDI+ is full of weird kerning bugs, making it almost unmistakable once you know what to look for.

author: kite31
author_rank: Regular Contributor
timestamp: October 15, 2025, 09:45:44 pm
content: In all of the above examples, backgrounds are far too heavy, busy, or both.

author: dmendesf
author_rank: Frequent Contributor
timestamp: October 15, 2025, 11:20:21 pm
content: Thanks for all the info, even if no clear identification was made a lot of equivalent options were cited. I just found the graph particularly nice and would like to plot some data I have in similar format.I think I got the graph from this forum but a reverse search came empty.

author: Conrad Hoffman
author_rank: Super Contributor
timestamp: October 17, 2025 07:50:49 pm
content: Quote from: SiliconWizard on October 15, 2025, 04:09:20 pmI plot a lot of stuff in Excel and it can certainly do that, but Gnuplot gives you real control and can do things that few other programs can. There's a bit of a learning curve but it's worth it.http://www.gnuplot.info/

author: tooki
author_rank: Super Contributor
timestamp: October 17, 2025 11:00:18 pm
content: Quote from: KE5FX on October 15, 2025, 05:50:42 pmWhich is why its successor, WPF, was introduced nearly 20 years ago. WPF is far superior, though probably not quite as advanced as what Apple’s current text engines do.

author: KE5FX
author_rank: Super Contributor
timestamp: «Reply #17 on:Todayat 03:05:44 am »
content: Quote from: tooki onYesterdayat 11:00:18 pmAh, yes, "If XML doesn't solve your problem, you didn't use enough of it."No, thanks.I'm an IMGUI kind of guy.

author: Picuino
author_rank: Super Contributor
timestamp: «Reply #18 on:Todayat 01:34:36 pm »
content: I would prefer Python + matplotlib:Code:import matplotlib.pyplot as pltimport numpy as np# Generate example data that simulates the graph shownVset = np.linspace(0, 5, 200) # Data for the X-axis (Vset)error = np.sin(Vset)*4 + np.random.normal(0, 0.2, size=Vset.shape) # Error with fluctuations# Create the plotplt.figure(figsize=(10, 4))plt.plot(Vset, error, color='darkblue', linewidth=0.8)plt.gca().set_facecolor('#d0d0d0')# Grid settingsplt.grid(True, which='major', axis='both', linestyle='-', color='black', alpha=0.8)plt.xticks(np.linspace(0, 5, 11))plt.yticks(np.linspace(-6, 6, 13))# Limit the X-axis and Y-axisplt.xlim(0, 5)plt.ylim(-6, 6)# Add secondary grid linesplt.minorticks_on() # Activate minor ticksplt.grid(True, which='minor', axis='x', linestyle='-', color='black', alpha=0.3) # Secondary linesplt.tick_params(axis='y', which='minor', length=0) # Remove minor ticks on Y-axisplt.gca().xaxis.set_major_formatter(plt.FuncFormatter(lambda x, _: f'{x:.1f}'))plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda x, _: f'{x:.1f}'))# Increase the thickness of the axes (x and y)plt.gca().spines['left'].set_linewidth(1.5) # Left spineplt.gca().spines['bottom'].set_linewidth(1.5) # Bottom spine# Make the ticks thickerplt.tick_params(axis='both', which='major', length=6, width=1.5) # Major ticksplt.tick_params(axis='x', which='minor', length=4, width=1) # Minor ticks# Set labels and titleplt.xlabel('Vset ')plt.ylabel('Error [ppm FS]')plt.title('Error vs Vset Plot')# Show the plotplt.subplots_adjust(bottom=0.15)plt.show()

author: Picuino
author_rank: Super Contributor
timestamp: «Reply #19 on:Todayat 02:17:23 pm »
content: Code:import matplotlib.pyplot as pltimport numpy as np# Generate example data that simulates the graph shownVset = np.linspace(0, 5, 200) # Data for the X-axis (Vset)error = np.sin(Vset)*4 + np.random.normal(0, 0.2, size=Vset.shape) # Error with fluctuations# Create the plotplt.figure(figsize=(13, 4))plt.plot(Vset, error, color='darkblue', linewidth=0.8)plt.gca().set_facecolor('#d0d0d0')# Grid settingsplt.grid(True, which='major', axis='both', linestyle='-', color='black', alpha=0.8)plt.xticks(np.linspace(0, 5, 11))plt.yticks(np.linspace(-6, 6, 13)) # Create 6 horizontal lines# Limit the X-axis to 5plt.xlim(0, 5)plt.ylim(-6, 6)# Add secondary grid linesplt.minorticks_on() # Activate minor ticksplt.grid(True, which='minor', axis='x', linestyle='-', color='black', alpha=0.3) # Secondary linesplt.tick_params(axis='y', which='minor', length=0) # Remove minor ticks on Y-axisplt.gca().xaxis.set_major_formatter(plt.FuncFormatter(lambda x, _: f'{x:.1f}'))plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda x, _: f'{x:.1f}'))# Increase the thickness of the axes (x and y)plt.gca().spines['left'].set_linewidth(1.5) # Left spineplt.gca().spines['bottom'].set_linewidth(1.5) # Bottom spine# Make the ticks thickerplt.tick_params(axis='both', which='major', length=6, width=1.5) # Major ticksplt.tick_params(axis='x', which='minor', length=4, width=1) # Minor ticks# Set labels and titleplt.xlabel('Vset ')plt.ylabel('Error [ppm FS]')plt.title('Error vs Vset Plot')# Show the plotplt.subplots_adjust(bottom=0.15, left=0.06, right=0.98)plt.savefig('Figure_1.png', dpi=150)plt.show()