LoginSignup
2
0

More than 3 years have passed since last update.

ASP.netでレーダーチャートを表示する

Posted at

急ぎASP.netでレーダーチャートを描く事になった。
sin、cosで計算して描くのかとげんなりしたのだけど、Visual Studio 2013には幸いにもChartコントロールがあったので、事なきを得た。
画面にコントロールを配置して、レーダーチャートを指定、Y軸に表題、X軸に値を指定する。

asp.net
<asp:Chart ID="Chart1" runat="server" Height="400px" Width="400px">
  <Series>
    <asp:Series Name="Series1" ChartType="Radar" XValueMember="subject" YValueMembers="point">\</asp:Series>
  </Series>
  <ChartAreas>
    <asp:ChartArea Name="ChartArea1"></asp:ChartArea>
  </ChartAreas>
</asp:Chart>

ソースコードはこんな感じ

c#
dt.Columns.Add("subject", Type.GetType("System.String"));
dt.Columns.Add("point", Type.GetType("System.Int32"));
String[] titles;
titles = new String[4] { "国語", "算\n数", 
"理科", "社\n会"};
Int32[] points;
points = new Int32[4] { 5, 3, 3, 1 };
for (Int32 i = 0; i < 4; i++)
{
    DataRow row = dt.NewRow();
    row["subject"] = titles[i];
    row["point"] = points[i];
    dt.Rows.Add(row);
}
Chart1.ChartAreas[0].AxisX.IsReversed = true;
Chart1.ChartAreas[0].AxisY.Maximum = 5;     //最大値指定
Chart1.ChartAreas[0].AxisY.IsStartedFromZero = true;
Chart1.DataSource = dt;
Chart1.DataBind();

開発環境では発生しなかったのだけど、サーバに配置すると、TempImageFiles フォルダがないとか言われた。
チャートは画像として生成されるのだけれど、その出力先がないとの事なので、
Web.Configの
<add key="ChartImageHandler" value="storage=file;timeout=20;dir= c:\TempImageFiles\ ;" />
上記dir=以下を書き込み可能なフォルダに修正して解決。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0