# And now it’s all this

## I just said what I said and it was wrong. Or was taken wrong.

« WiFi Woes with Dan Benjamin

# OmniGraphSketcher - not yet

December 11th, 2011 at 8:50 pm by Dr. Drang

The other day I was listening to the latest Mac Power Users podcast, the one with Horace Dediu as guest,1 and I heard David ask Horace if he used OmniGraphSketcher. I tried out OmniGraphSketcher back in 2009 and decided it wasn’t for me, but I got curious as to whether the things I didn’t like had been reworked in the 2-3 years since then. So I downloaded a trial copy and started playing with it again.

It still isn’t for me. The first problem is that OmniGraphSketcher still connects data points from left to right instead of in the order you give them, just as I found when I first looked into it. So if you generate a set of points to plot the hyperbola $x^2 - y^2 = 1$, you’ll find that the plot it makes looks like this

instead of this

There is, I found, a way to work around this problem, but it’s easier to just use another charting program. You may think this is no big deal because you don’t plot hyperbolas, but the strict left-to-right connectivity that OmniGraphSketcher imposes screw you up eventually.

The second problem is that OmniGraphSketcher doesn’t understand dates. If you paste in a time series from a spreadsheet, OmniGraphSketcher will plot the dates along the horizontal axis as if it knows what it’s doing, but if you study the spacing, you’ll see that it’s all messed up.

It’s interpreting the dates as text labels with no numeric value and spacing them uniformly. In the example, the 9 days between January 1 and January 10 takes up the same horizontal distance as the 17 days between January 10 and January 27.

So OmniGraphSketcher is no substitute for a real charting program like Gnuplot. But if you’re not trying to plot real data, but only sketch out—as the name of the app implies—some charts to show generic behavior and trends, OmniGraphSketcher may be worth checking out.

I still prefer OmniGraffle for quick plot sketches, like this generic stress-strain curve for mild steel. It’s probably not as efficient as OmniGraphSketcher for this particular use, but I’ve worked with it enough to get reasonably fast. For me, OmniGraphSketcher would be a waste.

Update (12/12/11)
This update may end up being longer than the original post. Dave from Omni mentioned in the comments that OmniGraphSketcher will connect points in the order you give them (without going through the rigamarole I described here). He’s right, but it’s still easy to get the wrong connection order—easier, I think, than it is to get the right order. Let me explain how it works.

Say you have two columns of numbers you want to plot. We’ll use the right branch of the $x^2 - y^2 = 1$ hyperbola for our example.

x y
2.236 -2.00
2.059 -1.80
1.887 -1.60
1.720 -1.40
1.562 -1.20
1.414 -1.00
1.281 -0.80
1.166 -0.60
1.077 -0.40
1.020 -0.20
1.000 0.00
1.020 0.20
1.077 0.40
1.166 0.60
1.281 0.80
1.414 1.00
1.562 1.20
1.720 1.40
1.887 1.60
2.059 1.80
2.236 2.00

You copy them from whatever application they’re in, open a new OmniGraphSketcher document, and paste. You’ll get a bunch of points, like this:

The Style Inspector is where you get to choose the look of the plotted points. Open it up and choose the curvy Line Type

and you’ll get this,

which is disappointing. (The blue halo is there because the plot was selected when I took the screenshot. It’s not part of the plot’s style.)

How to get the right connection? Don’t use the Style Inspector to tell it to connect the points. Instead, right after you paste in the points, go to the Data Inspector, which has a table of all the points you pasted in their original order.

Click the Connect Points button at the bottom, and lines will be drawn between the points in the order in which the points are given.

Do you find this intuitive? I don’t. To me, what I did to get the wrong connections was the natural way to use the program. The Style Inspector is where you make all the choices about lines and points—all except this one.

More important, why does OmniGraphSketcher ever connect the points in an order other than the one you give? If I want my data sorted, I’ll do that before plotting, thankyouverymuch. I can’t think of any other plotting programs that work this way. It’s like a word processor automatically alphabetizing your sentences.

That said, at least OmniGraphSketcher does have a way to connect the points in the order you give, which is better than what I thought when I wrote the post yesterday. I still think it’s not for me, but it’s worth a trial if you don’t need it for time series.

1. Overall, I’d say it was a pretty easy show for David and Katie. I’d be surprised if either of them spoke for more than two minutes, total. ↩

Tags: mac, omnigraffle, omnigraphsketcher, software
Post #1702 | 2 Comments

## 2 Responses to “OmniGraphSketcher - not yet”

1. Dave @ Omni says:

I just took another look at this and I’m can’t recall (and can’t look up at the moment) whether we changed the behavior post-1.0, or I didn’t think of the solution when replying to your tweet back in ‘09, but the Connect Points button in the bottom of the Data inspector will connect the points in creation order. We’d still like to add real date support; thanks for giving OmniGraphSketcher another look!

2. Dr. Drang says:

Thanks for the heads-up, Dave. You’re right (naturally—it’s your product), but whether you get the correct connectivity or not depends on how you add lines to the chart. Doing it as you suggested gives the right connectivity; doing it by clicking one of the Line Type buttons in the Style Inspector—which is what I did because it seemed natural to me—gives the wrong connectivity.

This is much better than the workaround I had to use back in ’09, and I’ll update the post to reflect this new behavior, but I have to say I still think it’s wrong to ever connect data points in an order other than that given by the user.
{"extraction_info": {"found_math": true, "script_math_tex": 2, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 0, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "plain"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.9269487857818604, "perplexity_flag": "middle"}