1

Yahoo Finance のデータを使用して、2 つの会社の終値を比較します。

#load "C:\Users\Nick\Documents\Visual Studio 2013\packages\FSharp.Charting.0.90.9\FSharp.Charting.fsx"
open FSharp.Data
open FSharp.Charting
open System
open System.Drawing
open System.Windows.Forms.DataVisualization.Charting

type Stocks = CsvProvider<"http://ichart.finance.yahoo.com/table.csv?s=FB">

let plotprice nasdaqcode =
    let url = "http://ichart.finance.yahoo.com/table.csv?s=" + nasdaqcode
    let company = Stocks.Load(url)
    let companyPrices = 
        [ for r in company.Rows do
            if r.Date > DateTime(2010, 1, 1) (* && r.Date < DateTime(2015, 1, 1) *) then
        yield r.Date, r.Close ]

    Chart.Line(companyPrices,Name=nasdaqcode) 
    |> Chart.WithLegend(Enabled=true,Docking=ChartTypes.Docking.Bottom, InsideArea=false)

Chart.Combine ([plotprice "VLKPY";plotprice "TM"])
|> Chart.WithXAxis(LabelStyle = ChartTypes.LabelStyle(Angle = -45),MajorGrid=ChartTypes.Grid(Enabled=true, LineColor=Color.LightGray))
|> Chart.WithYAxis(MajorGrid=ChartTypes.Grid(Enabled=true, LineColor=Color.LightGray))

そして、ここに私が得たものがあります:

VMとトヨタの終値

質問:

写真が示すように、グリッド線は 2 つしかありません (2012/1/1 と 2014/1/1)。X 軸に、2010 年から 2015 年までの各年に 1 行ずつ、より細かいグリッドを設定したいと考えています。この方法でグリッドを設定することは可能ですか?

4

1 に答える 1

3

次のタイプのIntervalパラメーターを使用できます。Grid

Chart.Combine ([plotprice "VLKPY";plotprice "TM"])
|> Chart.WithXAxis
    ( MajorGrid = ChartTypes.Grid( Enabled=true, 
                                   LineColor=Color.LightGray, 
                                   Interval=365.0 ) )

IntervalOffsetTypeに設定できるパラメーターもありますDateTimeIntervalType.Yearsが、これは私にとっては機能していないようです。そのため、F# Charting は現在、日にしか機能しないようです。

これを確認したり、問題を送信したり、F# Charting への貢献を検討して修正していただければ幸いです :-)

于 2015-01-23T11:37:06.287 に答える