diff --git a/Editor/PropertyDrawers/AxisDrawer.cs b/Editor/PropertyDrawers/AxisDrawer.cs index eaa80b80..8107432c 100644 --- a/Editor/PropertyDrawers/AxisDrawer.cs +++ b/Editor/PropertyDrawers/AxisDrawer.cs @@ -66,7 +66,13 @@ namespace XCharts { EditorGUI.PropertyField(drawRect, m_LogBaseE); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; + EditorGUI.BeginChangeCheck(); EditorGUI.PropertyField(drawRect, m_LogBase); + if (m_LogBase.floatValue <= 0 || m_LogBase.floatValue == 1) + { + m_LogBase.floatValue = 10; + } + EditorGUI.EndChangeCheck(); drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing; } if (type == Axis.AxisType.Value) diff --git a/Runtime/Component/Main/Axis.cs b/Runtime/Component/Main/Axis.cs index 18bd4c56..aac96e45 100644 --- a/Runtime/Component/Main/Axis.cs +++ b/Runtime/Component/Main/Axis.cs @@ -169,7 +169,11 @@ namespace XCharts public float logBase { get { return m_LogBase; } - set { if (PropertyUtility.SetStruct(ref m_LogBase, value)) SetAllDirty(); } + set + { + if (value <= 0 || value == 1) value = 10; + if (PropertyUtility.SetStruct(ref m_LogBase, value)) SetAllDirty(); + } } /// /// On the log axis, if base e is the natural number, and is true, logBase fails. @@ -745,7 +749,7 @@ namespace XCharts public float GetLogValue(float value) { - if (value <= 0) return 0; + if (value <= 0 || value == 1) return 0; return logBaseE ? Mathf.Log(value) : Mathf.Log(value, logBase); }