@@ -13,6 +13,43 @@ public class LivePlot
1313 public List < double > PlayerBlackData { get ; set ; } = new List < double > ( ) ;
1414 public List < int > MoveElements { get ; set ; } = Enumerable . Range ( 1 , maxNumberOfMoves ) . ToList ( ) ;
1515
16+ public void SetStartMove ( int moveNumber )
17+ {
18+ MoveElements = Enumerable . Range ( moveNumber , maxNumberOfMoves ) . ToList ( ) ;
19+ }
20+
21+ private object BuildXAxis ( bool showLine = false , bool showZeroline = false )
22+ {
23+ var start = MoveElements . Count > 0 ? MoveElements [ 0 ] : 1 ;
24+ var hasData = PlayerWhiteData . Count > 0 || PlayerBlackData . Count > 0 ;
25+ if ( hasData )
26+ return new
27+ {
28+ tickfont = new { size = fontSizeTickFont } ,
29+ showgrid = false ,
30+ zeroline = false ,
31+ showline = showLine ,
32+ showzeroline = showZeroline ,
33+ color = whiteColor ,
34+ tick0 = 0 ,
35+ dtick = 1 ,
36+ rangemode = "nonnegative" ,
37+ } ;
38+ return new
39+ {
40+ tickfont = new { size = fontSizeTickFont } ,
41+ showgrid = false ,
42+ zeroline = false ,
43+ showline = showLine ,
44+ showzeroline = showZeroline ,
45+ color = whiteColor ,
46+ tick0 = 0 ,
47+ dtick = 1 ,
48+ rangemode = "nonnegative" ,
49+ range = new [ ] { start - 1 , start + 11 } ,
50+ } ;
51+ }
52+
1653 private const double maxEvalValue = 20 ;
1754 private const double minEvalValue = - 20 ;
1855 private const int maxNumberOfMoves = 500 ;
@@ -46,7 +83,7 @@ public LivePlot(IJSObjectReference chessMod, ElementReference chart, string whit
4683 margin = new
4784 {
4885 l = 50 ,
49- r = 15 ,
86+ r = 30 ,
5087 b = 30 ,
5188 t = 50 ,
5289 pad = 2 ,
@@ -95,7 +132,7 @@ public LivePlot(IJSObjectReference chessMod, ElementReference chart, string whit
95132
96133 }
97134
98- public async Task ClearData ( string white , string black )
135+ public async Task ClearData ( string white , string black , int startMove = 1 )
99136 {
100137 try
101138 {
@@ -105,7 +142,7 @@ public async Task ClearData(string white, string black)
105142 liveUpdateStarted = false ;
106143 PlayerWhite = white ;
107144 PlayerBlack = black ;
108- MoveElements = Enumerable . Range ( 1 , maxNumberOfMoves ) . ToList ( ) ;
145+ MoveElements = Enumerable . Range ( startMove , maxNumberOfMoves ) . ToList ( ) ;
109146 await Task . WhenAll (
110147 SetEvalChartData ( ) ,
111148 SetChartNodeData ( ) ,
@@ -187,13 +224,7 @@ public void AddData(bool isWhite, double yData, bool isNPS)
187224
188225 public async Task SetEvalChartData ( )
189226 {
190- var xaxis = new
191- {
192- tickfont = new { size = fontSizeTickFont } ,
193- showgrid = false ,
194- zeroline = false ,
195- color = whiteColor
196- } ;
227+ var xaxis = BuildXAxis ( ) ;
197228
198229 var yaxis = new
199230 {
@@ -309,13 +340,7 @@ public async Task SetChartNodeData()
309340
310341 public async Task SetSingleChartNodeData ( )
311342 {
312- var xaxis = new
313- {
314- tickfont = new { size = fontSizeTickFont } ,
315- showgrid = false ,
316- zeroline = false ,
317- color = whiteColor
318- } ;
343+ var xaxis = BuildXAxis ( ) ;
319344
320345 var yaxis = new
321346 {
@@ -412,15 +437,7 @@ public async Task SetSingleChartNodeData()
412437
413438 public async Task SetDoubleChartNodeData ( )
414439 {
415- var xaxis = new
416- {
417- tickfont = new { size = fontSizeTickFont } ,
418- showgrid = false ,
419- zeroline = false ,
420- showline = false ,
421- showzeroline = false ,
422- color = whiteColor
423- } ;
440+ var xaxis = BuildXAxis ( showLine : false , showZeroline : false ) ;
424441
425442 var yaxis = new
426443 {
@@ -539,13 +556,7 @@ public async Task SetDoubleChartNodeData()
539556
540557 public async Task SetChartTimeUsageData ( )
541558 {
542- var xaxis = new
543- {
544- tickfont = new { size = fontSizeTickFont } ,
545- showgrid = false ,
546- zeroline = false ,
547- color = whiteColor
548- } ;
559+ var xaxis = BuildXAxis ( ) ;
549560
550561 var yaxis = new
551562 {
0 commit comments