Skip to main content

AxisBase.Logarithmic Property

Gets or sets whether the axis should display its numerical values using a logarithmic scale.

Namespace: DevExpress.XtraCharts

Assembly: DevExpress.XtraCharts.v24.2.dll

Declaration

[XtraChartsLocalizableCategory(XtraChartsCategory.Behavior)]
public virtual bool Logarithmic { get; set; }

Property Value

Type Description
Boolean

true if the logarithmic scale should be used; otherwise, false.

Remarks

If a chart’s series has its SeriesBase.ArgumentScaleType or SeriesBase.ValueScaleType properties set to ScaleType.Numerical, you can use the Logarithmic property to specify whether an axis should use the logarithmic scale to display axis values. When the Logarithmic property is set to true, you can also define a logarithmic base value using AxisBase.LogarithmicBase.

The axis forms its logarithmic scale as follows. The axis calculates a base axis value - minimum absolute value that is the power of the AxisBase.LogarithmicBase. These calculations are based on absolute values of data point values that the axis measures. Then, the axis marks positive and negative base values on the axis and next, positive and negative values that are the power of the AxisBase.LogarithmicBase. Note that if data point values do not contain positive or negative values, the appropriate semi axis is not plotted.

It is useful to employ the Logarithmic property when the data range of a chart’s series has significant disparity. By enabling this property, the chart’s numerical axes display all values using logarithmic equivalents. In short, if the logarithmic base is 10, only 5 uniform axis steps will exist between 10 and 1,000,000.

The following table demonstrates how the Logarithmic property works.

Logarithmic = false;

Logarithmic = true;

LogarithmicBase = 10;

Logarithmic_0

Logarithmic_1

Example

This example demonstrates how to use a logarithmic scale in XtraCharts, which is disabled by default.

Note

The logarithmic scale is only compatible with the numerical scale type.

To enable it, set the AxisBase.Logarithmic property to true, and set the AxisBase.LogarithmicBase property to the value required in your scenario.

using System;
using System.Windows.Forms;
using DevExpress.XtraCharts;

namespace LogarithmicScale {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }

        private void btnLogarithm10_Click(object sender, EventArgs e) {
            AxisY axis = ((XYDiagram)chartControl1.Diagram).AxisY;
            axis.Logarithmic = true;
            axis.LogarithmicBase = 10;
            axis.WholeRange.AlwaysShowZeroLevel = false;
        }

        private void btnLogarithm100_Click(object sender, EventArgs e) {
            AxisY axis = ((XYDiagram)chartControl1.Diagram).AxisY;
            axis.Logarithmic = true;
            axis.LogarithmicBase = 100;
            axis.WholeRange.AlwaysShowZeroLevel = false;
        }

        private void btnDisableLogarithm_Click(object sender, EventArgs e) {
            AxisY axis = ((XYDiagram)chartControl1.Diagram).AxisY;
            axis.Logarithmic = false;
            axis.WholeRange.AlwaysShowZeroLevel = true;
        }
    }
}
See Also