Google Finance style time series chart - gwt

I need to plot time stamped sensor data on a chart. There would be 3000 to 15000 data points in a day and I am looking for an interactive chart that is easy to navigate. Google Finance chart widget is perfect for my requirement. It seems to intelligently load data as one scrolls and zooms.
See: http://www.google.com/finance?q=NYSE%3AXOM
I have seen the same widget being used by causes.com which makes me think that it is not a Google proprietary component.
http://www.causes.com/causes/579073-india-against-corruption/impact
Does anyone know where can I find this component or an alternative?
Just FYI: I am using Ext GWT and a Java back end.
Edit: On further search found it on Google Chart Tools. Its use seems to be dependent on Google's infrastructure. I don't want such dependencies in my app and so I guess I will have to settle for an alternative.

Are you looking for something like this?
http://dygraphs.com/tests/range-selector.html
dygraphs is an open-source self-contained JavaScript library for charting time series, with no dependencies. It automatically scales the graph to match your data, translates times into the correct time zone, can plot CSV files from arbitrary remote URLs etc.

Use the Annotated TimeLine chart provided in the Google Visualization API.
It gives you the same chart that you see in the link http://www.google.com/finance?q=NYSE%3AXOM
I have been working on an Ext-Gwt app that requires a chart with somewhat the same specs that you mentioned.
The google api Chart integrates well into my App, and is not that difficult to code. I am pretty satisfied with it and would recommend you to try it out.
It though does need Google Inra to draw the Charts though. So if you can decide on a tradeoff, it would be a great option for you.

Related

Need help on tableau image carousel

I want to add an image carousel on a dashboard in Tableau. Around 3-4 images in slideshow from right to left. How does that work? Any insights would be helpful. Thanks!
Adding a picture slideshow in Tableau is not supported in a native way (purposely I assume) and I think there are several reasons you should reconsider your idea.
Tableau is a data visualisation tool and not PowerPoint. You should stick to visualising your data and not create a full on multi-media dashboard that distracts from the important points you want to present
If you need to display pictures that's fine (and possible) but having them changed independently of the data, doesn't seem to add any additional value to a dashboard and should be better done in a different place eg. the website you embed the dashboard in.
If you really want to have animations and moving parts in your dashboard and consider it a necessary feature to proof your point, the only way is to do what you already mentioned, create this slider in an external website and embed it in the dashboard. This however seems like a weird idea as well since if you do embed it in a website, it would be way easier to just do the slider there. If the dashboard is intended to be used locally however, you cannot guarantee that the user will have internet connection, which would mean that it cannot be consumed in a way you intended it to be consumed.

Displaying an auto updating map off a Google Sheet

I am trying to help witth rescue operations in Nepal.
I have setup a Google Form here and that information gets stored on a Google Sheet.
Now, I want to provide a map (OSM) that would autopopulate using data in the Google Sheet (there is a column with GPS coordinates.
Is this currently do-able? It would be ideal if I could provide an endpoint where various OSM maps could get the Google Sheet information from.
Thanks in advance.
You can use Leaflet or OpenLayers to place markers and popups on top of OSM maps. uMap might also be worth looking at.
Additionally there is also the Humanitarian OSM Team (HOT) doing various tasks for helping the Nepal rescue teams. The 2015 Nepal earthquake wiki contains an overview, guidelines and specific tasks. It might be useful to discuss your ideas with HOT.
In short, no. I've been in communication with Google about this. It's currently not a feature, and they have no plans to add this feature in the future.
And I, for one, desperately need such a feature! I'd imagine if thousands of us flooded Google with requests for this feature -- maybe they'd add it?

Web-Based Chart Designer

Edit: I noticed that there have been 40 views, but no responses. Have I asked for too much? Does anyone have any thoughts or points that are responsive to part of what I am looking for?
I am looking for a software library (open source or commercial) for my company that meets the following specifications. A bit of background first.
My company provides cloud-based software that, among other things, allows users to create ad hoc database tables, similar to SharePoint lists, and store any type of data there. Assume, for the sake of argument, that the data can be accessed through a regular SQL query, against either a table or view.
We want to give our users the ability to visualize the data stored in these ad hoc tables by creating their own charts. Our end users will not have any technical abilities and no coding should be required to make this possible.
Our software uses java on the backend. Clients access the software thru a browser and typically no plug-ins or add-ons are required.
Here is what I am looking for:
A library that can create a very broad range of charts (pie, bar, etc.), not just 1 or 2 kinds, and fairly complex versions of those charts.
Whether the charts are created on the backend (in java) or on the front end (using javascript) does not matter.
The end user should be able to use a wizard to design the chart. This includes not just what type of chart and the various chart options (labels, colors, etc.), but also what data fields will be used to construct each part of the chart. For example, the end user might select a pie chart, then select a specific data source (e.g., Store Sales), and from the data source they can select the columns that will be used as the pie dimension (the slices) and the pie measure (the size of each slice). This does not necessarily require that the library have access to the data source, as the fields in the data source and the datatype of each could be sent to the library (be it in java or javascript).
Finally, assuming the data is stored as a regular table or can be accessed as a SQL view, once the fields have been selected and the various aggregations defined to create the chart, the library should write the actual SQL code that will be required to query the underlying data. The end users cannot be expected to write the SQL code themselves.
I believe there are some SharePoint add-ons that will write the necessary queries to pull data out of a SharePoint list to create the charts. Something similar to that, but not SharePoint-based.
Mark,
I'll try and answer this to the best of my knowledge (Disclosure: I'm the co-founder & CEO of FusionCharts - where we make JavaScript charting components).
I've split my answer into 2 parts:
How to find a charting component for your web application?
How to build the UI for end-users to modify the charts created by these libraries?
There are three ways to add charting capabilities to your web application.
Using server-side charting libraries
First is to use platform-specific charting libraries that accept data on server through their APIs, create images to represent the chart, and then stream these images. Examples of such components are Telerik (.NET, paid), Infragistics (.NET, paid), ComponentArt (.NET, paid), ChartFX (Java, .NET, paid), Steema (.NET, paid), pChart (PHP, free), jPGraph, and a whole bunch of them.
The advantage of using such components are:
Mature libraries offer a huge variety of chart types
Since the charts are generated as images, they work everywhere, including mobile devices
The look & feel always stays the same, again by the virtue of charts rendered as images
If just one or two charts are served per user across entire application, lesser bandwidth is used compared to client-side libraries which could range from 50-500KB in size, but get cached thereafter
Disadvantages are:
Considerable resources are used at server-side when generating charts as images. More so for applications that have many concurrent users
Interactivity and animation offered by the charts are very limited, as there's only so much you can do with images
They are technology specific. So if you're using a library for ASP.NET, if/when you move to Java, you'll have to switch to a different library, and hence the look, feel and featureset would differ.
Using hosted charting APIs
Second option is to use hosted charting libraries that take in data over querystring/REST API and return chart image back to your application. Examples would be old Google Charting API.
Advantages of this are:
You do not need to host the charting library, and hence all maintenance and upgrade issues are managed by them
When you change your technology stack, the charts are still delivered by the same service and hence look & feel are same
Disadvantages:
Such services do NOT offer a variety of chart types
Confidential data needs to be transferred over HTTP outside your servers to such providers
Limitations on amount of data that can be sent over querystring
Again, charts cannot be interactive, as they are images
Client-side charting using JavaScript, CSS, Flash, Silverlight or Java applets
The third and last option is to use client-side charting libraries written in either JavaScript/HTML5, Pure CSS, Flash, Java applets or Microsoft Silverlight. Considering the fact that iOS devices do not support and proprietary plugins, Flash, Java and Silverlight based plugins do not work on iPads and iPhones. So you can safely to ignore them. Pure CSS components are very light-weight and can be used for very basic visualizations.
That finally brings us to JavaScript/HTML5 based charting components. There are a whole bunch of JavaScript charting libraries, both free and paid. I've listed some of them below:
Paid: FusionCharts Suite XT (JavaScript), HighCharts, amcharts, AnyChart, Jqplot, ZingCharts, Wijmo, TeeChart, Sencha Touch Charts, RGpraph, Kendo UI DataViz, JSCharts, Arcadia Charts, jQChart, EJSChart, emprisejs, techoctave
Free: FusionCharts Free (Flash), Google Chart Tools, Yahoo UI components, Flot, Milkchart, Moochart, protovis, graphael, elycharts, smootiecharts, dhtmlxchart, grafico, canvasjs, dygraphs, thejit, awesomechartjs, jchartFX. More free components based on d3.js for data visualization: xcharts, nvd3, rickshaw, cubism.js, Dc.js, xkcd, graphene
Now, given the number of components available, the questions you need to ask yourself when narrowing done for a charting component should include:
What chart types would you need - now and in the future? If you need very basic charts like column, pie etc., most of these libraries fit the bill. But if you need even slightly advanced charts like Pareto or Funnel, most of the components do not offer such charts.
How important is for you to have the charts rendered on maximum number of devices and older browsers like IE6? Many open-source libraries just use SVG for rendering, thereby not having support for IE6,7,8 (which 6% of the world still uses).
Can you use the part of your product where you implement data visualization as a USP during demos? If yes, how important is the look & feel of the charting component to you?
Are you looking to spend considerable amount of time tweaking the charts for basic features? For example, many open-source libraries enable tool-tips upon writing additional code, or the fact that if you've >25 data points on chart, x-axis label overlapping needs to be taken care of by you. Or, do you want these capabilities out of the box, so that you can focus on your application and business logic?
How important is it for you to be able to customize each and every feature of the chart, including cosmetics? For example, do you need to be able to render the charts in 3D, customize how the number gets formatted, control gradients etc.?
Do you want a component with an exhaustive documentation and real-life business demos so that you can get started easily, or are you ok with minimal docs and learning by experimentation which could take a lot time?
Is it important for you to get personalized support when something doesn't work as expected, or are you ok with posting on public forums and not having an SLA for a reply/fix?
Hoping that this information would help you choose a charting component for your web application, let me address the second question: Is there a component that comes with a client-side wizard for end-users to design the chart?
For the client-side charting libraries, the short answer is NO. Because, it ties the client-side library to a particular server-side technology for data persistence, and secondly not many users have need for it.
Some server-side libraries (Dundas used to have this capability) do provide this capability, though not all features of the chart can be customized at client-side.
That being said, many developers have created such wizards for use by non technical users. For example, at FusionCharts, we have created wizard for SharePoint which is called Collabion (see www.collabion.com), and PowerPoint which is called oomfo (www.oomfo.com). While these are not open source, we would be happy to share code of these, if you find them relevant.
Another option is to use an open-source BI component (like Pentaho, JasperSoft etc.) that have charting components in-built and also provide a wizard for end-users. However, they could require considerable server resources per user, and are time-taking to install and maintain.
Hope I've been able to answer your questions.
This sounds like a "build vs. buy" question. I'm interested to know if you have looked into comprehensive business intelligence tool like Tableau, qlikview, jDashboard, or LogiAnalytics?
Of course buying a pre-built solution will come down to constraints- can your vendor work with you on these? Or allow you to build minimal add-ons to address them? This might achieve many of your application's goals but have a higher upfront licensing cost.
Purchasing a visualization library or downloading an open source lib would provide one of the many materials you need to build the application you've described. This would have lower licensing costs but require building out the rest of your requirements around it.
The decision you need to make is whether you have the patience and ability required to juggle multiple libraries and handle custom coding, or whether you would be willing to pay for a complete solution that satisfies most but not necessarily ALL of your requirements.
Your requirement seems to be two-fold from my perspective. I would share my views, though I am not sure if it will help you.
You need a charting component that is diverse in nature, easily configurable, robust to extreme tinkering by users and looks good even in worst case scenario. (I assumed many items here since it is evident that users would be creating charts and thus it can be highly far-fetched.)
A visual editor (preferably wizard-style), that can be used to create and configure every aspect of such charts from exiting data sources.
Since your application is for creating and store custom data sources (as far as I could figure,) using a BI tool as overlay makes less sense since the nature of data is too flexible to conform to any source standards.
If my basic analysis is correct, then the following is my advise on a respective bases:
For such a comprehensive requirement, you would need charting solution that specialises
in visualisation and is a visualisation component taking care of your charting needs.
The only component that I see that meets your requirement is
FusionCharts. The reason being that FusionCharts is designed to
cater to enterprise customers with high fault-tolerance on input and
yet look appealing. (I can elaborate with examples or you can lookup the website
http://www.fusioncharts.com/.)
Sadly, there is no such component that comes inherently paired with such a capable
visualisation front-end. This primarily because most charting solutions provider caters
to consumers whose use-cases involve the chart generation to be on their own end.
You do have Dundas Chart Builder - which IMHO is not web-based and
jsCharts chart editor - whose visualisation front-end is not as comprehensive as
your needs and I am not sure if they sell the editor.
Having said that, there is another product from FusionCharts called Collabion.
The product uses FusionCharts to render charts and connects SharePoint data sources.
The interesting part is the visual chart builder that it has. It allows you to fully
customise the appearance and functionalities of FusionCharts and configuration of
data sources. Visit http://www.collabion.com/ and you can check out the screenshots.
Collabion is primarily intended for deployment on MicroSoft stack (SharePoint), but
your requirement is on Java. IMHO, if you go to that length, you can run an instance
of SharePoint and communicate the process. (Just thinking aloud.)
Indeed, FusionchartXT matchs your requirement, but you need a web-based FusionchartXT editor too. It must allow your customers optionally configure their charts attributes, cosmetics, dateset, and trend lines, just like this: http://www.crossui.com/FCEditor/.

GAPI Class, Google Analytics API

I am about to start a new project in the Google Analytics API & PHP.
I read that Google Analytics will be deprecating XML v2.3 and v2.4 and in 6 months time, so aparently you will only be able to use v3 and retrieve information in JSON format.
http://analytics.blogspot.com/2011/12/introducing-google-analytics-core.html
My question is the following: Does this means that GAPI class won't work any longer? Anyone who has used this class before can help me answering this question ??
http://code.google.com/p/google-api-php-client/
In that case, any alternative suggestions of PHP classes that do the same thing.
Thanks so much
I've been using GAPI for a while now. And I can say with some confidence that yes it will break, if not due to XML it will be due to some other change google makes.
Having said that GAPI is the best solution I have found out there for php. It does break every 6 months to a year, usually needs one or two lines changing to fix. But GAPI is pretty popular so at least you know when your clients are calling saying analytics is throwing errors at them, you wont be the only dev tearing your hair out.
9 times out of 10, by the time I've got a problem someone else has found the fix - which is nice.
There are a few other php options out there but GAPI seems to be the most popular (usually the best way to go imho)
My approach is to build an analytics summary in the dashboard and provide a link to google analytics underneath so clients can see the full data or go there when GAPI breaks. I have been putting all my sites on the same modular system for a while now. I keep GAPI as a library in my admin layout module, this means I can make the fix once and roll it out to all my sites without too much drama.
In summary, use it but expect it to break - that way you wont be disappointed when it does.

Suggestions for a web-based streaming charting tool

Afternoon all,
I'm looking for a way of presenting near realtime data using line charts within my web application. Specifically, my requirements are as follows:
It should support zooming (with the mouse wheel too!), scrolling, selecting different time ranges, etc.
It should support presenting data at multiple resolutions within a single chart. The default view would be the past 24 hours (using data at one minute resolution), but if the user zoomed out or browsed back further in time then lower resolution data would be used. On the daily view, we'll have 1440 points per line (there'll be at least two). If we lower this to hourly averages when zoomed out further, we're looking at 720 points per month per line. We can lower the resolution further after that too.
Ideally, if the user zoomed into a historical date the graph would poll a server to see if high resolution data was available for that period, and if so, fetch it and update the graph area.
Streaming data support. Namely, the graph would fetch deltas every X minutes and append them to the graph.
We're open to using Flash, Java, Silverlight or pure Javascript for the presentation layer, although Flash would probably be the strongest preference.
I've spent a fair bit of time looking around for something that would fit the bill here and have (surprisingly) not found much. Here's some brief notes from my research:
a) Google Finance charts are pretty much exactly what I want to achieve, but it seems that their public version of these charts (the Annotated Timeline Chart) is comparatively very limited. It does not allow for streaming data, and if you want to redraw graph data (e.g. when changing the selected date range) you get a nasty flicker as the chart area reloads with the new data.
b) Timepedia Chronoscope charts sound promising at first glance, with support for incremental data loading. However, there seems to be no documentation or examples of this (all examples use a static dataset from .js files)
c) We've seen charts such as Open Flash Chart and others like this, but they don't have the "wow factor" that Google Finance charts do.
Any suggestions welcome!
I would suggest Highcharts - very neat SVG and javascript-based charts. There's also an example called Live Random Data which updates a spline ever second - this would be useful for your streaming requirements. The zooming and scrolling is available: Master Detail Chart, but everything depends on how much data you'll be pointing out.
In my experiments earlier this year, I managed to have around 20 graphs with over 40 plots each running smoothly in Firefox, but more than that could give out tiny delays, so in that sense yeah, you'll be better off with Flash, although I doubt that anybody would be able to read 20 splines at a time ;)
Hope that helped. Cheers!