@@ -451,9 +451,9 @@ def prep_ticks(ax, index, ax_type, props):
451
451
tick0 = tickvalues [0 ]
452
452
dticks = [
453
453
round (tickvalues [i ] - tickvalues [i - 1 ], 12 )
454
- for i in range (1 , len (tickvalues ) - 1 )
454
+ for i in range (1 , len (tickvalues ))
455
455
]
456
- if all ([dticks [i ] == dticks [i - 1 ] for i in range (1 , len (dticks ) - 1 )]):
456
+ if all ([dticks [i ] == dticks [i - 1 ] for i in range (1 , len (dticks ))]):
457
457
dtick = tickvalues [1 ] - tickvalues [0 ]
458
458
else :
459
459
warnings .warn (
@@ -463,6 +463,8 @@ def prep_ticks(ax, index, ax_type, props):
463
463
raise TypeError
464
464
except (IndexError , TypeError ):
465
465
axis_dict ["nticks" ] = props ["axes" ][index ]["nticks" ]
466
+ if props ["axes" ][index ]["tickvalues" ] is not None :
467
+ axis_dict ["tickvals" ] = props ["axes" ][index ]["tickvalues" ]
466
468
else :
467
469
axis_dict ["tick0" ] = tick0
468
470
axis_dict ["dtick" ] = dtick
@@ -511,6 +513,13 @@ def prep_ticks(ax, index, ax_type, props):
511
513
512
514
if formatter == "LogFormatterMathtext" :
513
515
axis_dict ["exponentformat" ] = "e"
516
+ elif formatter == "FuncFormatter" and props ["axes" ][index ]["tickformat" ] is not None :
517
+ to_remove = ["dtick" "tickmode" ]
518
+ for key in to_remove :
519
+ if key in axis_dict :
520
+ axis_dict .pop (key )
521
+ axis_dict ["ticktext" ] = props ["axes" ][index ]["tickformat" ]
522
+ axis_dict ["tickvals" ] = props ["axes" ][index ]["tickvalues" ]
514
523
return axis_dict
515
524
516
525
0 commit comments