31

If you have some experience with Python (or even not), I would recommend using the Python scientific software that is available (SciPy,Pandas),...) together with Matplotlib. Being a programming environment, you have full control over your data flows, data manipulations and plotting. You can also use the "full applications" Mayavi2 or Veusz.


20

If your only worry is file size, then you want binary files. For an illustrative example, lets assume you are writing 1 double precision floating point number to a file. Let's assume that the file system can handle this perfectly and holding the file, headers, and padding are all 0. For a binary file, that number would take the exact size of the number in ...


18

There are a couple elements I look for when I consider something "publication-quality" in either my own work, or what I'm considering when looking at others. They are: High resolution, and preferably vector-based. This one should be fairly obvious by now, but you'd be surprised. A lack of clutter. I should be able to see what's happening in your figure, and ...


15

Based on what you're saying, a general purpose scripting language is probably your best bet, as long as it has some sort of graphing capability that you can access (whether built-in or imported). In that vein, MATLAB will work, although you'll have to toy with line widths, symbols, and axes for presentation-quality plots. Given your criteria, I'd say the ...


15

In practice, you rarely need data in visualization files that's more accurate than, say, 3 valid digits. In that case, ASCII is -- maybe surprisingly -- often more compact than binary form. If you're thinking about archiving, then bzip-ing these ASCII files is likely going to yield the smallest files you can get. That said, Paraview reads VTU format which ...


15

The easiest way I could find to subtract two fields from different VTK files with the same structured grid is to use a programmable filter in Paraview, which lets you manipulate data using Python scripts. In the programmable filter dialogue box, you can subtract the two arrays and write to output with the code: phi_0 = inputs[0].CellData['Phi'] phi_1 ...


14

IMO, what makes a figure "professional quality" is defined by the journal/publisher rules. Which actually translates to "publication quality" which is relative depending on where you publish. Some universal rules seem to stand out - invariant of the plotting software being used: 1) A figure should contain as few elements possible required to convey the ...


14

If we're talking about data figures I'd go to the sources: Edward Tufte's The Visual Display of Qualitative Information and Beautiful Evidence. Mr. Tufte of course goes into some details, but the principle that stands out for me is not spending ink on frames and decoration, but instead making as much of your ink as possible carry information. Amended per ...


13

Graphviz should work. I believe that the images associated with the matrices in the University of Florida sparse matrix collection were visualized using sfdp, a force-directed graph visualization algorithm developed by Yifan Hu. Most of the matrices in the collection have a computational time associated with generating a corresponding visualization, so you ...


12

Knowing how other CAS do this might help you. To my knowledge, Mathematica uses a variation on the following basic algorithm for plotting a one-variable function $f(x)$ or a parametric curve $(x(t), y(t))$ (I'm going to assume $f(x)$ for this description). Start with a regularly spaced grid of points on the plotting domain. (In Mathematica, there's a ...


10

#!/usr/bin/env python import numpy as np import matplotlib.pyplot as plt def fun (n, x): if n <= x <= n + 1: return float(x) - n elif n + 1 <= x <= n + 2: return 2.0 - x + n return 0.0 vfun = np.vectorize(fun) x = np.linspace(0, 10, 1000) y = vfun(3, x) plt.plot(x, y, '-') plt.show()


10

I think this is an excellent question, and one that is at the forefront of my own mind right now. When reading most math-ish journals, Matlab seems to be acceptable, but it just doesn't measure up IMHO to some of the beautiful plots and diagrams that appear in journals like PNAS, Nature, PLoS ONE, etc. After discussing exactly this issue in my research ...


10

I have implemented Mathematica's adaptive sampling routine here on GitHub (It's a single C file, go up to the source tree for the header file). I found a description of the routine in a big book on Mathematica a long time ago, and I've been using variations on this implementation for some time now. It basically does a rough linear sample over the domain of ...


10

Here I have an example: x = linspace(-5,5,100); y = linspace(-5,5,100); z = linspace(-5,5,100); [X, Y, Z] = meshgrid(x, y, z); Ex = sin(2*pi/5*Z); Ey = 0*X; Ez = 0*X; [Bx, By, Bz, V] = curl(X, Y, Z, Ex, Ey, Ez); Eplot = 0*x; Bplot = 0*x; for i=1:100 %% Integration-like procedure Eplot(i) = mean(mean(Ex(:,:,i),1),2); Bplot(i) = mean(mean(By(:,:,...


9

Your goal has a lot of challenges. I'll break them down into parts. SMILES is not a trivial language to parse, and the rules for aromaticity perception are not well defined. The detailed grammar definition from the OpenSMILES project should help some. SMILES defines the topology, but does not give 2D or 3D information. Making either is hard. (That is, if ...


9

Absolutely. You should check out VisIt, Paraview, Tecplot, Ensight, and similar tools.


9

I think the speed and simplicity of visualizing data is largely dependent on how fluent you are with visualization tools and preprocessing tools. I'm a big advocate of scripting for this purpose, because you can figure out how to do a task once and then copy and repurpose the script on similar tasks, which saves you time. For visualization, it really ...


8

I generally use gnuplot. It can be hard to learn, but it produces very clean plots. It can also be set to produce plots in encapsulated postscript format (.eps) which allows for easy embedding into documents written in $\LaTeX$.


8

Another software package to consider is Asymptote. Asymptote is actually a programming language (with a C++ like syntax) that produces vector based output. One nice feature is that text is rendered with LaTeX (including math equations), so the text in your figures is consistent with your document. I wrote a Python wrapper to Asymptote called PyAsy so that ...


8

Some of the algorithms are available from the source code for the different packages. PyMol is one such, and VMD's source is also accessible. I implemented VMD's ribbon algorithm in the 1990s. The first step is the structure determination - where are the amino acids? which are connected into a chain? where are the C-alpha atoms? Next, as Kyle said, is the ...


8

The best figures I have been able to make personally have been with the TeX package PGF/TikZ. If you use LaTex, as many in the hard sciences do, you have probably already heard of it. It also appears to be the leader in LaTex graphics packages. A sizeable proportion on the questions on the TeX StackExchange site are about PGF/TikZ. I'm not sure why the ...


8

Let me write a short review of Mathematica's graphics functionality, since that is what I'm familiar with. What can it do? To see some example, check out the Mathematica code gallery on the Wolfram site. It's not specifically about visualization, but almost all examples include some plotting. You can also browse the plotting (basic) and graphics (more ...


8

I would suggest that a full database may be overkill for your purposes, though it would certainly work. Even $5 \cdot 10^5$ rows should be no more than around 25mb of data. I would strongly recommend doing the analysis/plotting/etc with the same tool that you will use for querying your data. It is my experience that when changing what to analyse only takes ...


8

You can try Geogebra (it is free). With SolveODE command and sliders you can do what yo want. For the usage of SolveODE command see. For example by using following command SolveODE[ <f'(x, y)>, <Start x>, <Start y>, <End x>, <Step> ] with SolveODE[A + B y + C sin(y), l, m, 10, 0.1] I got the solution curve below. You can vary ...


7

I will assume that you know how to output all the frames you want in the movie. Then a simple free tool to turn them into a movie as Imagemagick's convert. If you are on a Linux system, you probably already have it or can easily get it through your package manager. Depending on the format of movie you want to make, you will also need an appropriate ...


7

The MathWorld web page on Function Graphs contains references to several papers which seem to be relevant on adaptative function plotting. Quoting the page: Good routines for plotting graphs use adaptive algorithms which plot more points in regions where the function varies most rapidly (Wagon 1991, Math Works 1992, Heck 1993, Wickham-Jones 1994). Tupper (...


7

The JavaScript InfoVis Toolkit has a neat interactive interface for annotated local views of graphs. These demos may be relevant to you: Debian package dependencies (note: this is an archived page without scripts) Band tree (here is another local explorable version)


7

Have you had a look at VMD? I used it ages ago to produce movies from simulation snapshots. Way back then, it could read a sequence of PDB files, render them (or generate POV-Ray scripts to raytrace them), and store them as individual images. I then used mencoder to generate MPEG-4 files out of the stills. Those were the days. I haven't used VMD since, but ...


7

I think you could use the "marching cubes" algorithm. If memory serves, it requires a grid of samples as input, so at the very least you should be able to sample your function and run the algorithm as-is. You also might be able to modify the algorithm to callback to f directly. There's a popular implementation at http://paulbourke.net/geometry/polygonise/ ...


6

I'll take a stab at it. The protein cartoon (also known as ribbon) representation consist of three parts corresponding to the three types of protein secondary structure. Random Coil (shown in green) - A B-spline, usually of order 2 or 3, passing through the alpha-carbons of each amino acid residue. Occasionally the spline will also pass through the amino-...


Only top voted, non community-wiki answers of a minimum length are eligible