10 Minute Reviews: Open Flash Chart
By Zach Gemignani
May 29, 2008
Find more about:
chart
graph
We frequently get requests to review and write about analytics-related solutions. I’ve put off most of these requests because it sounded like a lot of work. Then I had an 4-hour-work-week-style epiphany: most new users only give a new product or service a few minutes before they make up their mind. Why can’t I make the same snap judgement and call it an expert opinion?
First up is Open Flash Charts, pointed out to us by Matt Bear. This is an open source project started by John Glazebrook to provide flash charts that can be embedded in web pages. I love John’s explanation for taking on this project:
“Once upon a time I had to deal with a company who sell flash charting components, their component had a bug that I needed fixing, so I emailed them about it asking when it’d be fixed. (Remember that I had paid real money for this software.) They were so incompetent, rude and obnoxious that after three or four weeks of emails I thought to myself “I could learn Flash and Actionscript and write my own charting component, release it as Open Source, host it on sourceforge and build up a community of helpful coders faster than they can fix a single bug.” And that is what I did. And that is why it is free. I guess the moral of the lesson is: don’t piss off your customers.”
Great lesson. Great attitude. There are a bunch of vendors in this space (Fusion Charts, AnyChart, ILOG, PHP/SWF Charts, amCharts, Corda) and the going price seems to start at $500 for a developer's license up to $5,000 for an enterprise license. (Apparently that doesn’t always come with customer service.)
Open Flash Charts isn’t as flashy as any of these products, but that tends to be a good thing for charting components. Here’s a column chart from Fusion charts (notice how each bar is a separate color, for no good reason)

Here’s the Open Flash Charts

Open Flash Charts does a number of things well:
- It seems to be easy to implement. Basically, you just copy the Open Flash Chart SWF file into your web server, then start embedding flash charts into your HTML and point to either static or dynamic data on your server.
- You can configure data labels, background, number formats, on-click events, tooltips, etc.
- All the basic chart types are available (bar, line, area, pie, scatter).
- The help forum seem both lively (multiple messages a day) and supportive (a generally polite tone with lots of code posted).
On the negative side, Open Flash Charts doesn’t totally succeed in terms of data visualization fundamentals. The default charts have some contrast issues, odd color choices, and a little excess chartjunk. And when the charts get some “pizzazz,” things get worse:

I know… it is an open source project, so I should step up and fix the things I don’t like. I would, but I just ran out of my 10 minutes.
A Dashboard Alerts Checklist
By Zach Gemignani
May 8, 2008
Find more about:
dashboard
alert
design
reporting

There is a tendency with reporting, and dashboards in particular, to cram as much information on the page as possible. It is a problem that Avinash describes with typical candor:
“This one of the core reasons why most dashboards are 'crappy', i.e. they are data pukes that provide little in terms of context and even less in terms of actionable value.”
In the past, we have offered tools to make data presentation as clear as possible (chart chooser, Excel chart cleaner). Sometimes clean isn’t enough; a more dramatic approach is needed.
One alternative is to shift the focus from the full data to changes in the most critical data points. By pulling out the important exceptions, you can make it easier for your audience to digest what matters and take action.
Stephen Few says in his book Information Dashboard Design:
“The best way to condense a broad spectrum of information to fit onto a dashboard is in the form of summaries and exceptions…given the purpose of a dashboard to help people monitor what’s going on, much of the information it presents is necessary only when something unusual is happening; something that falls outside the realm of normality, into the realm of problems and opportunities. Why make someone wade through hundreds of values when only one or two require attention? We call these critical values exceptions.”
Alerts are one mechanism to turn the focus to the exceptions, outliers and data highlights. Whether embedded in the dashboard or presented separately, alerts can be the extra layer of abstraction that make a dashboard useful. Unfortunately, they are hard to get right. I’ve arrived at four C’s for effective alerts—context, cogency, communication, control. Here’s a checklist to consider as you build alerts into a dashboard or report:
Context: Users need to understand how an alert is defined and how it fits into the larger picture.
- Are the parameters well defined? An alert is commonly defined by the following factors: metric (e.g. revenue), dimension (e.g. time), delta (e.g month over month change), scope (e.g. Northeast region, Peanut-product line), threshold (e.g. increase or decrease of 10%).
- Is the timing of the alerts actionable? One client explained to us that fluctuations in many of their metrics make monthly alerts too frequent—it would unnecessarily alarm people when, from their perspective, no significant trend had been established.
- Is the change statistically significant? This is of particular importance when you are measuring deltas. A doubling of traffic from a referring site doesn’t mean much when it is moving from one to two visitors.
Cogency: An alerting system needs to avoid causing unnecessary alarm while delivering easy-to-understand information that can be acted upon.
- Can the alerts be described in simple terms that even an executive can understand? Alerts should have a real-world meaning that users are familiar with. If an alert is based on a complex metric, for example, users will be confused as to the implications.
- Is the alert actionable? In the best cases, alerts should point users to both the drivers of the alert and the actions that can address the situation. This system does neither: ![terror warning system]
- Are the alerts so granular and/or frequently triggered that users will get alert fatigue? Excessive use of alerts will undermining their credibility. We saw this happen at one client where an IT-designed system threw off alerts like they were going out of style. The application went out of style the next year when users decided it was more distracting than useful. Here’s another example of a system that seems designed to raise blood pressure.
(It appears that a 5% increase in brand attribute performance isn’t good enough to get you out of the yellow.)
Communication: Alerts must be designed to effectively capture attention and inform.
- Is the alert placed in context? Google Finance does a nice job of putting news alerts within the stock chart.

- Is it clear what the user should do next? Give the user a clear path to more information so they can understand the full context of the alert.
- Does the sophistication of your alerts match the sophistication of your audience? I’ve found that it is better to start with some simple alerts so your audience can begin to learn what they mean and how to react. Over time, these alerts can become more refined and focused to capture complex situations.
- Does the alert draw the eye without being visually overwhelming or annoying? Here’s a article about how to “reduce visual noise” in dashboards.
- Is color used appropriately? Red means bad. Yellow is sorta bad. Green means good (but “good” things don’t need to be alerts). It isn’t particularly fair for color blind folks, but these conventions are deeply rooted.
- Have you found the best mechanism for presenting alerts? Alerts can be sent through e-mail, as SMS message, blasted over the office intercom system, or posted to the wall in the bathroom. What is the most convenient and appropriate medium?
Control: Advanced alert system should give users the ability to customize and manage alerts.
- Can the user identify the important alerts for them, and avoid the others? As hard as you may try in designing the dashboard or report, you aren’t in the shoes of the users. They will learn what they want to pay attention to and what information is extraneous.
- Can the user adjust the parameters? With more sophisticated dashboards, you want to give users the ability to adjust parameters to hone in on the exceptions that really require action.
- Can the user analyze alert frequency and trends? I’ve never seen a system that does this, but having the ability to view and analyze alert history seems critically important to getting a holistic view of performance.
Tufte-Style Comparison Chart Generator
By Sal Uryasev
May 6, 2008
Find more about:
tufte
pil
comparison
chart
generator
Last week, we shared a rendition of a Tufte graphic using just a few lines of Nodebox code. As our commenters pointed out, Python is great, but it may not be every business analyst's carnal desire to learn a programming language just to generate some nifty graphs. I spent some time to push Chris's Nodebox rendition into a PIL-based Windows tool that can generate the same sort of comparison graph from an Excel file on the fly.
The result is The Comparison Chart Generator 1.0. The installation instructions are relatively simple. Unzip the zip file, and run comparisionchartgenerator.exe.
Alternatively, we have a new excel chart that creates the same effect using only excel functionality. Download the Excel Tufte Line Chart here.
If you are using the Chart Generator, start with some data in an Excel (xls) or Comma Delimited (csv) format. The data for this graph has to be contained within the first sheet starting with cell A1, as in the following picture.

Select an input file. There are a couple example files bundled with the download.

After selecting a file, you'll be prompted to modify a few of the basic options available for the chart.

Finally, save the result as a jpeg.

Here is the same image found in Tufte's textbook processed using the Comparison Chart Generator. It is generated using the csv example file bundled with the download.

Those of us who have undergone lasik eye-improvement surgery may still prefer the sharp crisp Nodebox results, but for the rest of us, this image looks pretty good. Let us know if this tool is useful. If there is enough of a positive response, we may consider expanding functionality for other fancy Tufte-esque charts.
If you do prefer Nodebox, I have an updated script here. This pushes the script up to 20 lines of code or so, but the extra 9 lines allow the labels to push themselves apart on their own. If you want to look at the source code for the Windows program, you can get it here. I used py2exe to compile it into an executable. The code, however, has not been thoroughly commented or cleaned as of yet, so edit it at your own risk.
18 comments | Show all comments only the last 5 are shown
lucas said:
Keep going, guys! I'm looking forward to seeing other Tufte-esque charts here.
And thanks a lot for the Nodebox, what a amazingly useful piece of software!
Asim said:
sal,
it took me a while to put all the pieces together. "using python...using excel..." but i realised that you may be interested in using resolver one:
http://www.resolversystems.com/products/
(i'm certain you've heard of it before, but let me describe it for the benefit of others)
it integrates a spreadsheet environment with a built in ironpython interpreter. that way, you wouldn't have to mess around with PIL and py2exe.
watch the one minute screencast:
http://www.resolversystems.com/screencasts/resolver-one-in-one/
and download it for free under a non-commercial license. big down side: only for windows (i'm a mac user, and don't enjoy working in a virtualised environment).
hope this is of interest to you, take care.
asim
Bilsko said:
Just tried it out on my Vista machine with Excel 2007 and it works great. Of course, I had to save the file as .xls so compchart could read it (it still baffles me that Microsoft had to go and introduce .xlsx as a file type...)
Rob said:
I just tried to run the .exe. file and got an error: "The specified module could not be found. Loadlibrary (pythondl) failed"
Any idea what this means and (more importantly) how to get around it?
Thx
johnny m said:
Awesome! However, all I get are export errors. But you have inspired me to begin to learn Python.
Traceback (most recent call last):
File "comparisonchartgenerator.py", line 247, in <module>
File "Image.pyc", line 1405, in save
File "JpegImagePlugin.pyc", line 409, in _save
File "ImageFile.pyc", line 493, in _save
IOError: encoder error -2 when writing image file
Madelaine said:
Cool, thanks. I might use this for gene expression data sometime.
derek said:
That's very nice. For extra sharp crispness, can you arrange for the imnage to be saved as GIF or PNG? Generally speaking, JPG is a very bad format to choose for graphs. The compression algorithm, which was designed for photographs with their smooth color gradients and few sharp edges, handles text, lines, and solid blocks, with their uniform fields of few colors, and many sharp edges, very badly, and the file is almost never as compact as a GIF acheives.
The image above shows the characteristic "newsprint smudged by fingers" visual effect of text in jpegs, and the file is 57K. You should find a lossless compression format both sharper in appearance and smaller in size.
Sal said:
I picked JPEG as a default since the PNG format is less known within Windows. Functionality for PNG is already included in the program, but is not obvious. When you are offered to save the file, ignore the *.jpg suggestion, and simply name it "whateveryouwant.png". You will have the output converted into the right format.
The GIF format is also built in if you want to try it out, but for some reason the PIL library that I used has not been creating great-looking GIF images. I would avoid them. The PNG looks very nice though.
derek said:
Thanks. Unfortunately, it may call itself a PNG, but it's still got jpeg artifacts. Also, bizarrely, the pseudo-PNG comes out at 60K compared to the jpeg's 40K.
There's no reason for such a simple graphic to have that kind of bloat. At the risk of tooting my own trumpet, see <a href="http://i146.photobucket.com/albums/r264/del_c/politics-charts/DoDDeaths3.png">this 800x600 graph</a>, which I think packs a fair bit more info into only 13.5K.
(and the <a href="http://i146.photobucket.com/albums/r264/del_c/politics-charts/DoDDeaths2small.png">400x300 thumbnail version</a>, designed to fit into the narrow column of a blog, is a mere 3.9K!)
Chris Gemignani said:
Derek,
We've had a number of problems getting a high quality image out of the Python Imaging Library (PIL). For this application, GIF would be best, but PIL was producing some ugly files.
Those graphics are really nice. Excel, too!
We use ImageMagick in house, but we can't package that in an app. A nice approach when using Excel is to output an image slightly bigger than you need then scale it down slightly with ImageMagick. This gives you anti-aliased lines and text that you don't get by default from Excel. It's what we used to produce the Colbert Bump graphs.
Nick said:
Hi,
This looks great! But for some reason the download link for the source for the windows version does not seem to work - I'd love to study the code, to learn how to use basic python to make my own tufte-esque charts.
Christian said:
Thank you for this post, it looks great! I love Tufte's work and read your blog frequently in Google Reader.
The output file (.png or .jpg) could be of a much wider use if it was a .wmf file, because this would enable me to change the colour of one line or text and make any additions I like with Illustrator. Is it possible to get a .wmf version? That would be fantastic.
Sal said:
Code should be accessible.
Most of the code deals with the GUI interface and with parsing excel/csv files. The actual PIL interaction starts around line 196.
I don't believe that PIL actually supports the wmf format. I am fixing up a presentable version of this sort of graph in Excel to add to the next version of chartchooser (http://chartchooser.juiceanalytics.com/). I'll put up a draft version of that when I have it cleaned up - it should be sufficiently editable to not need Illustrator.
Kasper said:
Great tool. One question: Is there a way to change the number of decimals shown? Currently it seems to show just on decimal, whatever the number format in the xls-spreadsheet.
Sal said:
As promised, I posted an excel chart of the same graph. You can find the link near the top of the page.
Jose Hernandez said:
I have an alternative post on a dynamic Excel bumpchart that combines charts with the cell grid. You can donwload it at http://sites.google.com/a/visual-catalyst.com/info_displays/Home/tufte_example_bumpchart.xls?attredirects=0
This display works for all versions of Excel. I'm working on a how to that describes how you can extend this type of chart.
Christof said:
Excellent work. I'm impressed!
John said:
awesome - using it right now. More Tufte style charting programs please!
Add a comment
Real-World Tufte Graphics in 11 Lines of Code
By Chris Gemignani
May 2, 2008
Find more about:
tufte
graphics
design
nodebox
python
One of the troubles with Tufte is the frustrating infeasability of his approach to design for real people in business. One of his recommendations is to use Adobe Illustrator.
Adobe Illustrator is a big serious program that can do almost anything on the visual field (other than Photoshop an image). Most of my sparkline work was done in Illustrator. Fortunately all graphic designers and graphic design students have the program and know how to use it, so find a colleague who knows about graphic design.
Raise your hand if you have a graphic design assistant at your beck and call. I thought not.
One of the tools we use for rapid prototyping at Juice is NodeBox.
NodeBox is a Mac OS X application that lets you create 2D visuals (static, animated or interactive) using Python programming code and export them as a PDF or a QuickTime movie. NodeBox is free and well-documented.
All true. But it's more helpful to think of NodeBox as a free Adobe Illustrator that you can program in the world's easiest programming language. Oops, here's the right link.
I wanted to see if we could reproduce the following graph from The Visual Display of Quantitative Information, p 158.

Here's the code. It's 11 lines of code if you exclude entering the data and setting things like fonts and colors.
size(500,700)
font('Palatino');
fontsize(12)
stroke(0.4) # a medium grey for lines
fill(0.2) # a slightly darker grey for text
<h1>data = (label, first, last, label-fudge-factor)</h1>
data = [ ('Sweden', 46.9, 57.4, 0., 0.),
('Netherlands', 44.0, 55.8, .3, 0.),
('Norway', 43.5, 52.2, 0., 0.),
('Britain', 40.7, 39.0, 0., 0.),
('France', 39.0, 43.4, 0., 0.6),
('Germany', 37.5, 42.9, 0., -0.4),
('Belgium', 35.2, 43.2, 0., 0.),
('Canada', 35.2, 35.8, .8, 0.4),
('Finland', 34.9, 38.2, -0.5, 0.),
('Italy', 30.4, 35.7, 0.3, -0.3),
('United States', 30.3, 32.5, -0.3, 0.),
('Greece', 26.8, 30.6, 0.4, 0.),
('Switzerland', 26.5, 33.2, -0.2, 0.1),
('Spain', 22.5, 27.1, 0., 0.3),
('Japan', 20.7, 26.6, 0., 0.), ]
text("Current Receipts of Goverment as a Percentage of "
"Gross Domestic Product, 1970 and 1979", 20, 70, width=215)
text("1970", WIDTH*.28, HEIGHT*0.03)
text("1979", WIDTH*.68, HEIGHT*0.03)
def ypos(val):
# calculate a vertical position by scaling between 10% and 90%
# of the height of the image
return HEIGHT * (0.9 - 0.8 * (val - minval) / (maxval - minval))
<h1>find the minimum and maximum values in the range</h1>
alldata = [d[1] for d in data] + [d[2] for d in data]
minval, maxval = min(alldata), max(alldata)
for label, start, end, startfudge, endfudge in data:
align(RIGHT)
text(label, 0, ypos(start+startfudge)+4, width=0.25*WIDTH)
text("%0.1f" % start, 0.25*WIDTH, ypos(start+startfudge)+4, width=0.07*WIDTH)
align(LEFT)
text(label, WIDTH*.75, ypos(end+endfudge)+4)
text("%0.1f" % end, 0.68*WIDTH, ypos(end+endfudge)+4, width=0.07*WIDTH)
line(WIDTH*.33, ypos(start), WIDTH*.67, ypos(end))
Here's what the result looks like.

We have some great followups to this planned for next week. We'll reimplement this code with the Python Imaging Library, which will open things up for Windows users. We have some great plans for mashing these graphics up with our just released Google Analytics API.
21 comments | Show all comments only the last 5 are shown
Clint said:
Chris,
You tout that "It's 11 lines of code if you exclude entering the data and setting things like fonts and colors"
How long did it take you to code and what's the comparable length of time for a designer in Illustrator?
Seems to me that savvy python scriptors are just as rare as designers so I'm not sure there's a winner here.
Asim said:
If you're looking at visualisation using Python check out R:
http://www.r-project.org/
and the corresponding Python package:
http://rpy.sourceforge.net/
Here are some examples of using R:
http://addictedtor.free.fr/graphiques/thumbs.php
I've used an R/RPy combination successfully in work and academic assignments. Once downside is that it's difficult to set up RPy on Linux/Macs.
Tony said:
I'm with Clint on this one. Six in one, half dozen in another... If you are a programmer, sure, Python would be the obvious choice.
My thinking is that people would rather learn Illustrator where the work is visible versus Python where it's a lot of unfamiliar characters in specific strings that translates into an end product.
Now to your credit, Python and Nodebox don't cost $599 like Illustrator. So that's a big plus if you have programming skills or want to learn them.
Chris Gemignani said:
@Clint/Tony:
It's leverage, leverage, leverage. The code solution lets me produce 1000 graphs for no more than the cost of producing one. It lets me produce next months graph for no more than the cost of producing this one. It lets me build an API like http://code.google.com/apis/chart/. Admittedly this takes yet more skills and experience, but the problem is getting easier not harder.
Of course there's a benefit to free and open source too. I don't need a purchase order, I don't need to talk to my boss, to get something done, etc.
The time spent for this project is probably about the same as Illustrator. It was about 10 minutes to get to basic, working code. Then an hour of extra primping to make it pretty for the blog. Frankly, I'm not really sure how someone would produce an accurate technical drawing like this in Illustrator. Tufte mentions a Excel data import function, but that sounds like extra complexity too.
@Asim: I'm aware of the R stuff. We don't use it, but it's great. This NodeBox approach is more pixel-perfect particularly if you're seeking a very specific look.
Sal said:
Code, however, is very reusable. Your programmer only needs to create it once, and then, with minor adjustments, any similar graph can be drawn by non-programmers.
Tony said:
@ Chris - Great point!
Nick said:
Speak of a coincidence - While browsing Tufte's site looking for advice on programs that make tables like this (actually looking for a way to reproduce the cancer survival rates ones) I followed a link to this site on cleaning up Excel graphs and end up finding what I was looking for in the first place! I was even thinking about learning to use python to do it too....
Scott Zakrajsek said:
First, I just wanted to say that I love the tips on this blog.
I'm really interested in the follow up and would like to see the flexibility and visual aesthetic of Python. I'm still a big fan of Illustrator, I think that knowledge of a few basic AI tools can deliver a large variety of graph types. Check out this link, a great example of clean data visualization done w/ illustrator:
http://feltron.com/index.php?/content/2007_annual_report/P0/
Brendan O'Connor said:
I actually use <a href="http://www.statmethods.net/">R</a> for static data visualizations like this. (e.g. a <a href="http://blog.doloreslabs.com/?p=11">color wheel of words</a>.) It's definitely a weird choice, but (1) I think its data management and mathematical list operations are easier than Python or Ruby, and (2) it has a small amount of GUI integration. I see that NodeBox is a bit better than PIL on those points though...
Shane said:
Great post. I'm very interested in hearing about other methods that dont require OS X.
Andrew said:
Very true insights on using Adobe Illustrator. My background isn't in graphic design, and I haven't spent a number of years taking courses in AI. I generally find that Adobe's software is obtuse and confusing. Perhaps it is easy to use for fanatics, but for occasional, reluctant users it's a nightmarish experience.
Thanks for providing an alternative for the rest of us.
Mike said:
For Linux users NodeBox can be run using QT, there is some info about installing at http://dev.nodebox.net/wiki/Qt
Using this method NodeBox is running fine for me but the code above shows an error:
Traceback (most recent call last):
File "/home/luser/try-qt/nodebox/gui/qt/__init__.py", line 534, in _compileScript
self._code = compile(source + "\n\n", self.scriptName, "exec")
File "<untitled>", line 7
<h1>data = (label, first, last, label-fudge-factor)</h1>
^
SyntaxError: invalid syntax
(not sure if this is a problem with the code or the NodeBox QT version)
Mike said:
Update- got QT NodeBox to run on Ubuntu 8.04 and run the updated script from http://media.juiceanalytics.com/downloads/tufte_nodebox_forcepush.py just fine!
The font('Palatino') command was still showing an error but it worked fine with that line removed ;)
Big thumbs up for Tufte on Linux using NodeBox :D
Sal said:
Whoa - nice find Mike. I have it running on Ubuntu 8.04, and will definitely use this in server-side applications.
I think I found the bug with the font setup in the Nodebox Qt code. If you open up /try-qt/nodebox/graphics/qt.py and go to line 884, and change 'return f.exactMatch()' to 'return f', the font feature works again. You can even download the Palatino font and point to it with the full path.
Pradeep Gowda said:
I've implemented a in-browser vresion of this graphic using Javascript and processing.js library.
http://pradeepgowda.com/programming/tuft-graphics-processingjs.html
Jonno said:
I'm a statistican and have had similar frustrations with implementing interpretable graphs. A common tool I would use for this is R - a free statistical programming language with excellent graphing capabilities. The code would be about the same length as Node box (at a guess).
http://www.r-project.org/
Chris Gemignani said:
Who's up for a multi-language infographics shootout?
Tim said:
That's cool !
I was wondering if there was a way to generate these graphics through command line ? that way we could embed this in web application and get the graphics generated dynamically
note: looks like comments in your code got converted to html (# -> h1)
Kragen Javier Sitaker said:
Is there a way to get old-style numerals with NodeBox? I suppose you have to find an installed font on your Mac with old-style numerals.
Pradeep's processing.js demo is awesome, but from the screenshot lacks antialiasing. (I'm not yet a Firefox 3 Achiever.)
Luke said:
Dude, why reproduce the errors ("fudge factors") in the original?
The Dude said:
@Luke: Dude, the fudge factors are not errors. They are there so that the text labels do not overlap.


11 comments | Show all comments only the last 5 are shown
Michael Buckbee said:
You left out a big new player in the online charts arena: Google. Anyone looking at doing an online app with charting and visualization should seriously check out the Google Chart API:
http://code.google.com/apis/chart/
Also, SWF Charts and AmCharts appear to be an order of magnitude cheaper than the other options up there. I've used PHP/SWF on a number of projects and it's worked great, but you can end up with massive data transfers as you're pushing large amounts of XML around in the background as well as the chart itself.
fasm said:
great review, wonder if you could do review for silverlight charts.
few i know
1. <a href="http://visifire.com">visifire</a>
2. Jelly Charts
3. <a href="http://www.softwarefx.com/sfxNetProducts/ChartFX/silverlight/">chartfx</a>
Andrew Conkling said:
I'm with Michael. I can't think of a time that calls for "Flash chart" that isn't an implementation-specific way of saying "chart I can put on my website". Google to the rescue, and theirs isn't locked in to an implementation that's bad for the web.
Dov said:
1) Google Charts is useless in an enterprise environment since all you do is send your data to google, and they send you back a PNG. That's an information security problem that will never fly in an intranet.
2) Andrew: your comment of flash charts being only purposed to embellish webpages with charts does not factor in any flex application development. If you're building a Flex or AIR application, you absolutely need a MXML Component/SWC, not a PNG spit out by google's chart server. Take the financial services industry where analytics are a core piece of user-facing technology. Having a flex app which allows you to view your portfolio, chart it, etc, and execute trades within the app is pretty powerful, and native flex charting would be a core requirement in such an app.
Kris Burgess said:
In fairness to Fusion Charts from the above example; you can configure the chart colours anyway you wish via simple xml instruction (1 colour, 2 colour - 72!). That "default" example is probably used to draw in the "managers" and users who need to see that stuff to feel its any good!
I also reviewed http://www.reportingforfree.com/ for web reporting on our intranet. They too have a pretty nice offering - and for free.
I look forward to further reviews here although I disagree with a 10 minute review! tut tut
Zach said:
Michael, we've been using Google charts for some apps, and it is a great service. However, I agree with Dov's point that there are situations where an interactive charting component is going to offer a better user experience and allow for better information presentation.
Kris, I often here this argument that garish charts or dashboards are necessary to attract the attention of executives. A) I don't buy that it looks better than a well designed chart; B) I doubt variety of colors is actually a decision factor for most managers; C) I'm not convinced that the designers of faulty charts like that know any better; D) And if they do, it is a cheap trick that deserves to be called out.
Pete said:
Dov, you might want to check out the new google visualization api instead of charts:
http://code.google.com/apis/visualization/documentation/gallery/annotatedtimeline.html
http://code.google.com/apis/visualization/documentation/gallery/columnchart.html
From the docs: "Data Policy: All code and data are processed and rendered in the browser. No data is sent to any server."
Fong said:
Pete,
thus that mean i can download the api and use them offline? This will provide an added sense of security, wheather it's justifiable or not
suman said:
How to control the context menu (right click disable on chart).
Off course i made modifications to open-flash-chart.as file but how to compile that file to get the desired output?
Any one please help me in this regard.
mb said:
Suman,
You'll probably have better luck posting your question in the Open Flash Chart support forum. It's hosted on Sourceforge, at this URL:
http://sourceforge.net/forum/forum.php?forum_id=716572
tulip25 said:
hey Guys,Look what i have got <a href="http://visifire.com"> visifire</a> an amazing charting component quality of charts are better than Flash chart's.offered under open source powered by silverlight
said:
Add a comment