Как повернуть метку оси Y обратно
Я использую FSharp.Charting 0.87, чтобы нарисовать очень простой график линейной функции. Есть ли способ вернуть метку оси Y обратно в нормальное положение? Другими словами, могу ли я ориентировать букву "Y" нормально, не поворачивая ее на 90 градусов?
А именно, мне интересно, выставлен ли Axis.TextOrientation где-нибудь.
Вот код:
#load "packages/FSharp.Charting.0.87/FSharp.Charting.fsx"
open FSharp.Charting
open System.Drawing
Chart.Line([0,0;1,0;2,1;3,1;5,0; 6,0])
.WithYAxis(Title = "Y", TitleAlignment = StringAlignment.Far)
.WithXAxis(Title = "x", TitleAlignment = StringAlignment.Far)
.ShowChart()
1 ответ
Решение
Вот хак, чтобы обойти проблему, в случае, если кому-то еще это нужно. Короче говоря, чтобы добраться до свойств объекта Chart, сначала нужно создать ChartControl:
#load "packages/FSharp.Charting.0.87/FSharp.Charting.fsx"
open FSharp.Charting
open FSharp.Charting.ChartTypes
open System.Drawing
open System.Windows.Forms
let chart = Chart.Line([0,0;1,0;2,1;3,1;5,0; 6,0])
.WithYAxis(Title = "Y", TitleAlignment = StringAlignment.Far)
.WithXAxis(Title = "x", TitleAlignment = StringAlignment.Far)
let ctrl = new ChartControl(chart, Dock=DockStyle.Fill)
let chartObj = ctrl.Controls |> Seq.cast<Control> |> Seq.pick (function | :? DataVisualization.Charting.Chart as x -> Some x | _-> None)
chartObj.ChartAreas.[0].AxisY.TextOrientation <- DataVisualization.Charting.TextOrientation.Horizontal
let form = new Form(Visible = true, TopMost = true, Width = 700, Height = 500)
form.Controls.Add(ctrl)
form.Show()