12

I have three columns of data. Column 1 has a short description, column 2 has a benefit number and column 3 has a cost. I can create a cost/benefit scatter chart, but what I want is to be able to have each point in the scatter chart be labeled with the description. I don't care if you can see it on the chart or you have to roll over the point to see the description.

  • Ran into the same problem today. I don't believe MS didn't implement such basic and useful feature in 30 years! – Michael Mar 27 '18 at 22:49
6

You could use this addon http://www.appspro.com/Utilities/ChartLabeler.htm

| improve this answer | |
  • +1 Looks good. I already did it the manual way, but this add-on looks useful for when I need to do this again. – Leigh Riffel Oct 1 '10 at 12:59
  • +1 Excellent link! Wish I could up vote it more than once. BTW, works for all chart types with labels, not just XY. – DaveParillo Oct 6 '10 at 3:11
  • 1
    In addition to this fine add-in, Excel 2013 now has an option to add labels from cells. Add any old arbitrary labels first, then format them to access this option. – Jon Peltier Oct 5 '14 at 15:57
2

There's another free utility (and tutorial on how to create it) available for download here: http://www.wiseowl.co.uk/blog/s130/excel-charts-data-labels-problem.htm

| improve this answer | |
  • Could you perhaps describe this utility? Maybe include a tutorial? Generally we prefer answers involve more detail as opposed to just linking – Simon Sheehan Nov 11 '11 at 21:46
  • Pictures showing how the program works is very helpful too. – wbeard52 Oct 2 '15 at 3:27
2

I propose one tool named Funfun that can solve your problem. With this tool, you can use an external JavaScript library to plot the scatter chart with a description that meets your needs.

I wrote a function for your problem. Here's the code of the main part:

<script>
    var data = $internal.data; // use Funfun API to get the data
    var plot_data = [];
    for(var i=0; i<data.length; i++){ // data preprocessing to fit in Plotly.js
     var trace = {
      x: [data[i][0]],
      y: [data[i][1]],
      type: 'scatter',
      name: data[i][2]
     };
     plot_data[i] = trace;
    }
    var layout = {
      title: 'Data Labels Hover'
    };
    Plotly.newPlot('myDiv', plot_data, layout); // use Plotly.js to plot the chart
</script>

In Excel Online it's as shown below: you can write codes in the right pane. As mentioned in the code, I use plotly.js to plot the chart. enter image description here enter image description here

The link https://www.funfun.io/1/edit/5a3772cd45ac15144af3fe9d of this function. You can link this function to your Excel with Funfun and this URL.

Besides, Funfun also provides an online playground which shares the same database with Funfun in Excel add-in. You can also click the link above to see what it's like in website version. This function in Funfun website

P.S. I'm a developer of Funfun.

| improve this answer | |
  • 1
    If you have written a function that answers the question, please post the function in your answer as text.  Images are pretty useless to blind people (OK, so are charts) and links tend to break. – G-Man Says 'Reinstate Monica' Dec 21 '17 at 3:50
  • Ok, I'll fix it as soon as I can. Thanks for your advice. – yi liang Dec 23 '17 at 5:36
  • I've added the core code. – yi liang Dec 23 '17 at 9:36
  • Thank you, and thank you for disclosing your association with FunFun.   But, for your information, code doesn’t display properly unless every line is indented four spaces (I fixed the </script> for you), and “developer” is spelled with one ‘P’ (I fixed it here, but I can’t edit your profile). – G-Man Says 'Reinstate Monica' Dec 23 '17 at 16:22
1

At first, I thought you could accomplish this with a 'bait and switch' - make a plot of the data first, then edit the series. Doesn't work though. This works if and only if the numbers in column 'B' are whole numbers. The excel chart isn't really using any of the data in column B anymore.

The only way I have been able to reliably do this in the past is to make every row of data it's own data series. Painful, but if you want to see it in action, I have an example excel file.

| improve this answer | |
  • +1 Every row of data as it's own series does work, but you are right it is painful to build. – Leigh Riffel Sep 29 '10 at 17:34
0

The wiseowl.co.uk utility worked for me. As a "tutorial" I would recommend

  1. Downloading this Excel worksheet, from part five of this blog and enabling macros http://www.wiseowl.co.uk/files/blogs/s130/i3.xlsm

  2. Move the button down and out of the way of your data if you have more than a few columns

  3. Paste your data in on top of the film data.

  4. Create scatter plots by selecting two column at a time and insert scatter (plot).

  5. Clicking on the button, which will add labels.

Easy.

Thanks to the folks that made it and recommended it.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.