带有更多刻度的对数轴

带有更多刻度的对数轴

用此代码生成的图表的 y 轴有问题:

\documentclass{book}
\usepackage{tikz}
\usetikzlibrary{datavisualization}
\begin{document}

\begin{figure}[htbp]
\centering
\begin{tikzpicture}
  \datavisualization [
    scientific axes=clean,
    x axis={length=0.8\textwidth, ticks=some, label={Generation}},
    y axis={length=0.56\textwidth, logarithmic, ticks={minor steps between steps}, grid, label={Costs}},
    visualize as line/.list={best,average},
    legend=north east inside,
    best   ={label in legend={text=best cost}},
    average={label in legend={text=average cost}},
    style sheet=vary dashing
  ]
  data [format=named,set=best, read from file=bestGA.csv]
  data [format=named,set=average, read from file=averageGA.csv]
  ;
\end{tikzpicture}
\caption{GA: graphical representation of costs improvement shown for the average and the best VA.}
\label{fig:GAimprovement:eb_555AICH}
\end{figure}
\end{document}

包含数据的文件:平均值.csv最佳.csv

刻度和网格都在那里,只缺少标签。

我希望标签也出现在小刻度(即8*10^69*10^61,1*10^7)上。我在文档中看到小刻度没有标签,但有解决方法吗?我已经尝试过ticks={at={8000000,9000000,11000000}}强制刻度,但无济于事……

答案1

需要的就是ticks and grid={major at={8000000.0,9000000.0,10000000.0,20000000.0}}得到想要的效果。

想要的结果

但是,现在这已经是硬编码了。有人知道更好的解决方案吗?

相关内容