change point style in EXCEL 2010 chart - vba

I need to change the point style of a chart in EXCEL 2010.
I have 10000 points, all are represented by diamonds that are overlaped each other in the chart.
It is very hard to see them clearly.
How to change them to a small point not diamonds ?
In EXCEL, available shapes are only diamonds.
Any help would be appreciated.

This will change the marker style of the first series of the active chart:
ActiveChart.SeriesCollection(1).Select
With Selection
.MarkerStyle = 1
.MarkerSize = 5
End With
MarkerStyle 1 sets the series markers to circles and MarkerSize sets their size. Not sure if you have many series or all points on the same series. You will maybe have to loop over the series collection to change the style on all the series.

Related

Visio VBA Return the 'Start' and 'End' of shape as values related to the Horizontal Ruler

I have a Visio drawing (and will have many more) that have a timeline e.g. months or quarters represented by boxes
[Example 'timeline'][1]
The drawing will have shapes that align to the 'timeline' and I need to read through the shapes and return the Shape Text and the Start and End ruler positions of shapes - from this I can ascribe a date and duration of sorts which is consumable elsewhere. I have failed to find a means by which to find Start and End positions of shapes that I can relate (consistently) to the ruler (or the shape timeline 'boxes').
The obvious, PinX and PinY values are not consistent (in relation to the ruler or other shapes). I have no control over the received drawings -so the ruler is the only constant.
Any help would be appreciated (whilst not at all new to VBA I am new to Visio VBA and there is a lot to it and a lot I do not understand).
[1]: https://i.stack.imgur.com/pMzC3.png
Problem was me, much as I hate to admit it. With all items Pin Pos Centre-Centre and LocPinX = width*0.5 this works. The actual measurement of the Ruler is irrelevant as the shapes do follow consistent positioning so that 'Start X' = PinX-(width/2) OR PinX - LocPinX and therefore 'EndX' = 'Start X' + Width.

Optimal display for overlapping series in a line chart

In a context of a line chart displaying time data in regular intervals where multiple series might overlap what would be the optimal way to:
A) hint the user that the chart has overlapping series?
B) give the user the capability to visualize all those series? Like spanning the series somehow?
For overlapping series in a line chart, I would keep the traditional line chart but put a label at the end of the graph with a color legend. The legend and label will help the user get information quickly.
Another version of a line chart for overlapping series can be a line area chat.
If you are not stuck on only line charts, I would suggest a bar chart. Below are some examples that you can use.
Example 1:
Example 2:
Example 3:
There are couple ways to indicate that there are overlapping series on a chart. You can increase the marker radius of one of them. The number of legend elements tells you how many series there is, too. Finally, you can distribute series on a different yAxis, with different top and height properties. Also, in styled mode, when you hover on legend item, other series opacity changes.
API Reference:
http://api.highcharts.com/highcharts/plotOptions.line.marker.radius
Examples:
http://jsfiddle.net/whsgpdyw/ - changing marker radius
http://jsfiddle.net/fuq6j4sg/ - each series on a different yAxis

Customizing tick marks and labels on x-axis (Excel VBA)

I'm drawing a graph in Microsoft Excel and I'm just wondering if this is possible, and if it is, how to achieve it. I've attached an illustration below:
This is what I have >
regular
This is what I'm trying to do > (I did this in Paint to illustrate)
edited in paint
Can the y-axis to cross over the x-axis at 30, but the tick marks starts at 100 onwards? I also don't want any labeling or tick marks below 30.
Thank you.
You need to hide the default axis and build your own. In my example, I want the axis to start at 30 and end at 730, but have tick marks and labels at 100, 200, 300, etc.
I set up a data range with X values in one column of 100, 200, 300, ... 700, and Y values of zero in the next column.
Chart 1 is the original chart without anything added or removed. Chart 2 has the added series, shown as orange plus-sign markers. Chart 3 has data labels below these added points, showing the default Y values of zero (orange text). In Chart 4 I have formatted the labels so that they show the X values instead of the Y values. In Chart 5 I have changed the X axis scale so it starts at 30 and ends at 730. I have also hidden the axis labels, not by removing them, but my using a custom number format of " ", which preserves the margin below the axis to leave room for my custom data labels. Finally in Chart 6 I have formatted the plus sign markers to match the axis line and the data labels to match the other chart text. I have also formatted the Y axis with major tick marks that cross the axis.
First two are basic chart formatting - plenty of examples to be found via Google for those.
For the third one you can use a custom format for your axis labels. See for example:
http://www.officetooltips.com/excel_2016/tips/conditional_formatting_of_chart_axes.html
Your format could look something like this:
[White][<=30]General;[Black][>30]General
In VBA:
With ActiveSheet.ChartObjects(1).Chart.Axes(xlCategory)
.TickLabels.NumberFormat = "[White][<=30]General;[Black][>30]General"
End With

VBA, Excel Chart Axis Formatting

I have charts made from a pivot(as I choose different pivot filters the chart changes). Some of the values are quite large others are quite small, which makes the charts hard to read sometimes as the Y Values are static.
Does anyone have any Code to alter this Y axis each time I change the chart, my idea is that each chart will be more legible with a fixed y axis each time? Any suggestions so I do have clearer charts is welcome.
Here are examples of what I currently have? I want to make the Y axis charge per each chart if possible.
!http://imgur.com/SKuRLFw
!http://imgur.com/6bdolZ7
Thanks
you can try:
ActiveChart.Axes(xlValue).MinimumScale = ###
ActiveChart.Axes(xlValue).MaximumScale = ###
Replace ### with the value you want, or you can define the MaximumScale to be the max value show in the chart, or some reference to it.

How to set PowerPoint chart Point text labels to match marker colors?

In an X-Y scatter plot, I manually add text labels to data points via Point.DataLabel. Unfortunately I find that when points are crowded then it can be difficult to tell which series a label belongs to. Therefore I want to color my text labels to match the markers.
I am happy with the default markers and their colors, but unfortunately they contain MarkerForegroundColor = -1 and MarkerForegroundColorIndex = 0, no matter which series I look at. Furthermore, Application.ActivePresentation.ColorSchemes is empty. I note that point.MarkerStyle = xlMarkerStyleAutomatic.
I found that the colors correspond to the accent colors in the active Theme (only available in PowerPoint 2007 onwards):
presentation.SlideMaster.Theme.ThemeColorScheme.Colors(MsoThemeColorSchemeIndex.msoThemeAccent1 + series_i % 6);