Ulr*_*rar 3 haskell haskell-chart
我正在尝试使用Haskell-Charts(http://hackage.haskell.org/package/Chart)生成一些图表.它工作正常,我得到一个很好的图表
我唯一的"问题"是左边的数字,这有点难以阅读.有没有办法可以提供一个函数,在显示它们之前转换这些数字?我可以在绘图之前转换数字,但我会失去精确度.我一直在看文档但我没有看到它,如果存在的话.
谢谢
编辑:这是代码.
import Graphics.Rendering.Chart.Easy
import Graphics.Rendering.Chart.Axis.LocalTime
import Graphics.Rendering.Chart.Backend.Diagrams
import Data.Time.LocalTime
main = do
-- Get datas
toFile def "test.svg" $ do
layout_title .= "Active mem"
plot (line "Active" $ [L.map (\v -> ((utcToLocalTime utc $ time v) :: LocalTime, (fromIntegral $ value v) :: Int)) $ V.toList q])
Run Code Online (Sandbox Code Playgroud)
不幸的是,我从数据库中获取数据,而且我无法公开访问它.但是一个带有大数字的[(LocalTime,Int)]列表应该会给你类似的东西.我正在使用Diagrams后端顺便说一下
这是工作代码.你可以改变func你喜欢的任何东西
10,20,30,40当实际数据为时,这将显示y轴的标签100,200,300,400
import Graphics.Rendering.Chart.Easy
import Graphics.Rendering.Chart.Backend.Diagrams
func :: Int -> String
func x = show $ x `quot` 10
vals :: [(Int,Int)]
vals = [(1,100),(2,200),(3,300),(4,400)]
main = do
toFile def "test.svg" $ do
layout_title .= "test"
layout_y_axis . laxis_generate .= autoScaledIntAxis(LinearAxisParams{
_la_labelf = map func,
_la_nLabels = 5,
_la_nTicks = 10
})
plot $ points "Score" vals
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
121 次 |
| 最近记录: |