ポーラチャート

SPREADでは以下の4種類のポーラチャートが提供されています。 チャートはエンドユーザーが自由に移動したりリサイズすることができます。

ポーラ(直線)ポーラ(直線とマーカー)
ポーラ(マーカーのみ)ポーラ面
 ABCDEF
1 03060180270
2S15024548526
3S29214154265
4S34335366143
5S42480371127
   

ソースコード

別ウィンドウで表示
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class chart_polarchart : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            return;
        }

        // SPREADの設定
        InitSpread(FpSpread1);

        // シート設定
        InitSpreadStyles(FpSpread1.Sheets[0]);
    }

    private void InitSpread(FarPoint.Web.Spread.FpSpread spread)
    {
        spread.CssClass = "spreadStyle2";
        spread.UseClipboard = false;
    }

    private void InitSpreadStyles(FarPoint.Web.Spread.SheetView sheet)
    {
        // フォントサイズの設定
        sheet.DefaultStyle.Font.Size = FontUnit.Parse("80%");
        sheet.ColumnHeader.DefaultStyle.Font.Size = FontUnit.Parse("80%");
        sheet.RowHeader.DefaultStyle.Font.Size = FontUnit.Parse("80%");
        sheet.SheetCorner.DefaultStyle.Font.Size = FontUnit.Parse("80%");

        sheet.RowCount = 5;
        sheet.ColumnCount = 6;

        // 2Dを選択
        RadioButtonList1.SelectedIndex = 0;

        // テストデータの設定
        sheet.SetClipValue(0, 1, 1, 5, "0\t30\t60\t180\t270");
        sheet.SetClipValue(1, 0, 1, 6, "S1\t50\t24\t54\t85\t26");
        sheet.SetClipValue(2, 0, 1, 6, "S2\t92\t14\t15\t42\t65");
        sheet.SetClipValue(3, 0, 1, 6, "S3\t43\t35\t36\t61\t43");
        sheet.SetClipValue(4, 0, 1, 6, "S4\t24\t80\t37\t11\t27");

        // シリーズを作成
        FarPoint.Web.Chart.PolarLineSeries series1 = new FarPoint.Web.Chart.PolarLineSeries();
        series1.SeriesName = "s1";
        series1.PointMarker = new FarPoint.Web.Chart.NoMarker();
        series1.SeriesNameDataSource = new FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldSeriesName", "Sheet1!$A$2:$A$2", FarPoint.Web.Spread.Chart.SegmentDataType.Text);
        series1.XValues.DataSource = new FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldCategoryName", "Sheet1!$B$1:$F$1");
        series1.YValues.DataSource = new FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldValue", "Sheet1!$B$2:$F$2");

        FarPoint.Web.Chart.PolarLineSeries series2 = new FarPoint.Web.Chart.PolarLineSeries();
        series2.SeriesName = "s2";
        series2.PointMarker = new FarPoint.Web.Chart.NoMarker();
        series2.SeriesNameDataSource = new FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldSeriesName", "Sheet1!$A$3:$A$3", FarPoint.Web.Spread.Chart.SegmentDataType.Text);
        series2.XValues.DataSource = new FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldCategoryName", "Sheet1!$B$1:$F$1");
        series2.YValues.DataSource = new FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldValue0", "Sheet1!$B$3:$F$3");

        FarPoint.Web.Chart.PolarLineSeries series3 = new FarPoint.Web.Chart.PolarLineSeries();
        series3.SeriesName = "s3";
        series3.PointMarker = new FarPoint.Web.Chart.NoMarker();
        series3.SeriesNameDataSource = new FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldSeriesName", "Sheet1!$A$4:$A$4", FarPoint.Web.Spread.Chart.SegmentDataType.Text);
        series3.XValues.DataSource = new FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldCategoryName", "Sheet1!$B$1:$F$1");
        series3.YValues.DataSource = new FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldValue0", "Sheet1!$B$4:$F$4");

        FarPoint.Web.Chart.PolarLineSeries series4 = new FarPoint.Web.Chart.PolarLineSeries();
        series4.SeriesName = "s4";
        series4.PointMarker = new FarPoint.Web.Chart.NoMarker();
        series4.SeriesNameDataSource = new FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldSeriesName", "Sheet1!$A$5:$A$5", FarPoint.Web.Spread.Chart.SegmentDataType.Text);
        series4.XValues.DataSource = new FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldCategoryName", "Sheet1!$B$1:$F$1");
        series4.YValues.DataSource = new FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldValue0", "Sheet1!$B$5:$F$5");

        // プロット領域を作成します
        FarPoint.Web.Chart.PolarPlotArea plotArea = new FarPoint.Web.Chart.PolarPlotArea();
        plotArea.Location = new System.Drawing.PointF(0.2f, 0.2f);
        plotArea.Size = new System.Drawing.SizeF(0.6f, 0.6f);
        plotArea.XAxis.MajorGridVisible = true;
        plotArea.Series.AddRange(new FarPoint.Web.Chart.Series[] { series1, series2, series3, series4 });

        // 凡例を設定します
        FarPoint.Web.Chart.LegendArea legend = new FarPoint.Web.Chart.LegendArea();
        legend.Location = new System.Drawing.PointF(0.995f, 0.5f);
        legend.AlignmentX = 1f;
        legend.AlignmentY = 0.5f;

        // チャートモデルに各情報を追加します
        FarPoint.Web.Chart.ChartModel model = new FarPoint.Web.Chart.ChartModel();
        model.LegendAreas.Add(legend);
        model.PlotAreas.Add(plotArea);

        // SPREADチャートにチャートモデルを設定します
        FarPoint.Web.Spread.Chart.SpreadChart chart = new FarPoint.Web.Spread.Chart.SpreadChart();
        chart.Height = 300;
        chart.Width = 400;
        chart.Left = 50;
        chart.Top = 120;
        chart.Model = model;

        sheet.Charts.Add(chart);
    }
    protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        FpSpread1.SaveChanges();

        if (FpSpread1.ActiveSheetView.Charts.Count > 0)
        {
            if (RadioButtonList1.SelectedIndex == 1)
            {
                FpSpread1.ActiveSheetView.Charts[0].ViewType = FarPoint.Web.Chart.ChartViewType.View3D;
                FpSpread1.ActiveSheetView.Charts[0].Model.PlotAreas[0].Elevation = 18;
                FpSpread1.ActiveSheetView.Charts[0].Model.PlotAreas[0].Rotation = -24;
            }
            else
            {
                FpSpread1.ActiveSheetView.Charts[0].ViewType = FarPoint.Web.Chart.ChartViewType.View2D;
            }
        }
    }
}

Partial Class chart_polarchart
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If IsPostBack Then
            Return
        End If

        ' SPREADの設定
        InitSpread(FpSpread1)

        ' シート設定
        InitSpreadStyles(FpSpread1.Sheets(0))
    End Sub

    Private Sub InitSpread(ByVal spread As FarPoint.Web.Spread.FpSpread)
        spread.CssClass = "spreadStyle2"
        spread.UseClipboard = False
    End Sub

    Private Sub InitSpreadStyles(ByVal sheet As FarPoint.Web.Spread.SheetView)
        ' フォントサイズの設定
        sheet.DefaultStyle.Font.Size = FontUnit.Parse("80%")
        sheet.ColumnHeader.DefaultStyle.Font.Size = FontUnit.Parse("80%")
        sheet.RowHeader.DefaultStyle.Font.Size = FontUnit.Parse("80%")
        sheet.SheetCorner.DefaultStyle.Font.Size = FontUnit.Parse("80%")

        sheet.RowCount = 5
        sheet.ColumnCount = 6

        ' 2Dを選択
        RadioButtonList1.SelectedIndex = 0

        ' テストデータの設定
        sheet.SetClipValue(0, 1, 1, 5, "0" & vbTab & "30" & vbTab & "60" & vbTab & "180" & vbTab & "270")
        sheet.SetClipValue(1, 0, 1, 6, "S1" & vbTab & "50" & vbTab & "24" & vbTab & "54" & vbTab & "85" & vbTab & "26")
        sheet.SetClipValue(2, 0, 1, 6, "S2" & vbTab & "92" & vbTab & "14" & vbTab & "15" & vbTab & "42" & vbTab & "65")
        sheet.SetClipValue(3, 0, 1, 6, "S3" & vbTab & "43" & vbTab & "35" & vbTab & "36" & vbTab & "61" & vbTab & "43")
        sheet.SetClipValue(4, 0, 1, 6, "S4" & vbTab & "24" & vbTab & "80" & vbTab & "37" & vbTab & "11" & vbTab & "27")

        ' シリーズを作成
        Dim series1 As New FarPoint.Web.Chart.PolarLineSeries()
        series1.SeriesName = "s1"
        series1.PointMarker = New FarPoint.Web.Chart.NoMarker()
        series1.SeriesNameDataSource = New FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldSeriesName", "Sheet1!$A$2:$A$2", FarPoint.Web.Spread.Chart.SegmentDataType.Text)
        series1.XValues.DataSource = New FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldCategoryName", "Sheet1!$B$1:$F$1")
        series1.YValues.DataSource = New FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldValue", "Sheet1!$B$2:$F$2")

        Dim series2 As New FarPoint.Web.Chart.PolarLineSeries()
        series2.SeriesName = "s2"
        series2.PointMarker = New FarPoint.Web.Chart.NoMarker()
        series2.SeriesNameDataSource = New FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldSeriesName", "Sheet1!$A$3:$A$3", FarPoint.Web.Spread.Chart.SegmentDataType.Text)
        series2.XValues.DataSource = New FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldCategoryName", "Sheet1!$B$1:$F$1")
        series2.YValues.DataSource = New FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldValue0", "Sheet1!$B$3:$F$3")

        Dim series3 As New FarPoint.Web.Chart.PolarLineSeries()
        series3.SeriesName = "s3"
        series3.PointMarker = New FarPoint.Web.Chart.NoMarker()
        series3.SeriesNameDataSource = New FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldSeriesName", "Sheet1!$A$4:$A$4", FarPoint.Web.Spread.Chart.SegmentDataType.Text)
        series3.XValues.DataSource = New FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldCategoryName", "Sheet1!$B$1:$F$1")
        series3.YValues.DataSource = New FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldValue0", "Sheet1!$B$4:$F$4")

        Dim series4 As New FarPoint.Web.Chart.PolarLineSeries()
        series4.SeriesName = "s4"
        series4.PointMarker = New FarPoint.Web.Chart.NoMarker()
        series4.SeriesNameDataSource = New FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldSeriesName", "Sheet1!$A$5:$A$5", FarPoint.Web.Spread.Chart.SegmentDataType.Text)
        series4.XValues.DataSource = New FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldCategoryName", "Sheet1!$B$1:$F$1")
        series4.YValues.DataSource = New FarPoint.Web.Spread.Chart.SeriesDataField(FpSpread1, "DataFieldValue0", "Sheet1!$B$5:$F$5")

        ' プロット領域を作成します
        Dim plotArea As New FarPoint.Web.Chart.PolarPlotArea()
        plotArea.Location = New System.Drawing.PointF(0.2F, 0.2F)
        plotArea.Size = New System.Drawing.SizeF(0.6F, 0.6F)
        plotArea.XAxis.MajorGridVisible = True
        plotArea.Series.AddRange(New FarPoint.Web.Chart.Series() {series1, series2, series3, series4})

        ' 凡例を設定します
        Dim legend As New FarPoint.Web.Chart.LegendArea()
        legend.Location = New System.Drawing.PointF(0.995F, 0.5F)
        legend.AlignmentX = 1.0F
        legend.AlignmentY = 0.5F

        ' チャートモデルに各情報を追加します
        Dim model As New FarPoint.Web.Chart.ChartModel()
        model.LegendAreas.Add(legend)
        model.PlotAreas.Add(plotArea)

        ' SPREADチャートにチャートモデルを設定します
        Dim chart As New FarPoint.Web.Spread.Chart.SpreadChart()
        chart.Height = 300
        chart.Width = 400
        chart.Left = 50
        chart.Top = 120
        chart.Model = model

        sheet.Charts.Add(chart)
    End Sub

    Protected Sub RadioButtonList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButtonList1.SelectedIndexChanged
        FpSpread1.SaveChanges()

        If FpSpread1.ActiveSheetView.Charts.Count > 0 Then
            If RadioButtonList1.SelectedIndex = 1 Then
                FpSpread1.ActiveSheetView.Charts(0).ViewType = FarPoint.Web.Chart.ChartViewType.View3D
                FpSpread1.ActiveSheetView.Charts(0).Model.PlotAreas(0).Elevation = 18
                FpSpread1.ActiveSheetView.Charts(0).Model.PlotAreas(0).Rotation = -24
            Else
                FpSpread1.ActiveSheetView.Charts(0).ViewType = FarPoint.Web.Chart.ChartViewType.View2D
            End If
        End If
    End Sub
End Class
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="polarchart.aspx.cs" Inherits="chart_polarchart" %>

<%@ Register Assembly="FarPoint.Web.SpreadJ" Namespace="FarPoint.Web.Spread" TagPrefix="FarPoint" %>

<asp:Content ID="Content1" ContentPlaceHolderID="HeaderPlaceHolder1" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <asp:RadioButtonList ID="RadioButtonList1" runat="server" AutoPostBack="True" 
        RepeatDirection="Horizontal" 
        onselectedindexchanged="RadioButtonList1_SelectedIndexChanged">
        <asp:ListItem Selected="True">2D</asp:ListItem>
        <asp:ListItem>3D</asp:ListItem>
    </asp:RadioButtonList> 
    <FarPoint:FpSpread ID="FpSpread1" runat="server" BorderColor="#A0A0A0" BorderStyle="Solid"
        BorderWidth="1px">
        <CommandBar BackColor="#F6F6F6" ButtonFaceColor="Control" ButtonHighlightColor="ControlLightLight"
            ButtonShadowColor="ControlDark">
        </CommandBar>
        <Sheets>
            <FarPoint:SheetView SheetName="Sheet1">
            </FarPoint:SheetView>
        </Sheets>
    </FarPoint:FpSpread>
</asp:Content>