main
syneffort 1 year ago
parent 9bb5a31ff7
commit c73e34f622
  1. 39
      LC_Tutorial/Tutorial/BasicPlots/HeatMapWindow.xaml
  2. 121
      LC_Tutorial/Tutorial/BasicPlots/HeatMapWindow.xaml.cs
  3. 5
      LC_Tutorial/Tutorial/MainWindow.xaml
  4. 6
      LC_Tutorial/Tutorial/MainWindow.xaml.cs

@ -0,0 +1,39 @@
<Window x:Class="Tutorial.BasicPlots.HeatMapWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Tutorial.BasicPlots"
xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"
mc:Ignorable="d"
Title="HeatMapWindow" Height="450" Width="800">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="30"/>
</Grid.RowDefinitions>
<lvc:CartesianChart Grid.Row="0">
<lvc:CartesianChart.Series>
<lvc:HeatSeries Values="{Binding Values}" DataLabels="True" >
<lvc:HeatSeries.GradientStopCollection>
<GradientStop Offset="0.00" Color="Blue"/>
<GradientStop Offset="1.00" Color="OrangeRed"/>
</lvc:HeatSeries.GradientStopCollection>
</lvc:HeatSeries>
</lvc:CartesianChart.Series>
<lvc:CartesianChart.AxisX>
<lvc:Axis Labels="{Binding Salesman}" LabelsRotation="-15">
<lvc:Axis.Separator>
<lvc:Separator Step="1"/>
</lvc:Axis.Separator>
</lvc:Axis>
</lvc:CartesianChart.AxisX>
<lvc:CartesianChart.AxisY>
<lvc:Axis Labels="{Binding Days}"/>
</lvc:CartesianChart.AxisY>
</lvc:CartesianChart>
<Button x:Name="btnRandomize" Grid.Row="1" Content="Randomize" Click="btnRandomize_Click"/>
</Grid>
</Window>

@ -0,0 +1,121 @@
using LiveCharts;
using LiveCharts.Defaults;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace Tutorial.BasicPlots
{
/// <summary>
/// HeatMapWindow.xaml에 대한 상호 작용 논리
/// </summary>
public partial class HeatMapWindow : Window
{
public ChartValues<HeatPoint> Values { get; set; }
public string[] Days { get; set; }
public string[] Salesman { get; set; }
public HeatMapWindow()
{
InitializeComponent();
InitInstance();
}
protected virtual void InitInstance()
{
Random rand = new Random();
Values = new ChartValues<HeatPoint>
{
//X means sales man
//Y is the day
//"Jeremy Swanson"
new HeatPoint(0, 0, rand.Next(0, 10)),
new HeatPoint(0, 1, rand.Next(0, 10)),
new HeatPoint(0, 2, rand.Next(0, 10)),
new HeatPoint(0, 3, rand.Next(0, 10)),
new HeatPoint(0, 4, rand.Next(0, 10)),
new HeatPoint(0, 5, rand.Next(0, 10)),
new HeatPoint(0, 6, rand.Next(0, 10)),
//"Lorena Hoffman"
new HeatPoint(1, 0, rand.Next(0, 10)),
new HeatPoint(1, 1, rand.Next(0, 10)),
new HeatPoint(1, 2, rand.Next(0, 10)),
new HeatPoint(1, 3, rand.Next(0, 10)),
new HeatPoint(1, 4, rand.Next(0, 10)),
new HeatPoint(1, 5, rand.Next(0, 10)),
new HeatPoint(1, 6, rand.Next(0, 10)),
//"Robyn Williamson"
new HeatPoint(2, 0, rand.Next(0, 10)),
new HeatPoint(2, 1, rand.Next(0, 10)),
new HeatPoint(2, 2, rand.Next(0, 10)),
new HeatPoint(2, 3, rand.Next(0, 10)),
new HeatPoint(2, 4, rand.Next(0, 10)),
new HeatPoint(2, 5, rand.Next(0, 10)),
new HeatPoint(2, 6, rand.Next(0, 10)),
//"Carole Haynes"
new HeatPoint(3, 0, rand.Next(0, 10)),
new HeatPoint(3, 1, rand.Next(0, 10)),
new HeatPoint(3, 2, rand.Next(0, 10)),
new HeatPoint(3, 3, rand.Next(0, 10)),
new HeatPoint(3, 4, rand.Next(0, 10)),
new HeatPoint(3, 5, rand.Next(0, 10)),
new HeatPoint(3, 6, rand.Next(0, 10)),
//"Essie Nelson"
new HeatPoint(4, 0, rand.Next(0, 10)),
new HeatPoint(4, 1, rand.Next(0, 10)),
new HeatPoint(4, 2, rand.Next(0, 10)),
new HeatPoint(4, 3, rand.Next(0, 10)),
new HeatPoint(4, 4, rand.Next(0, 10)),
new HeatPoint(4, 5, rand.Next(0, 10)),
new HeatPoint(4, 6, rand.Next(0, 10))
};
Days = new[]
{
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday"
};
Salesman = new[]
{
"Jeremy Swanson",
"Lorena Hoffman",
"Robyn Williamson",
"Carole Haynes",
"Essie Nelson"
};
DataContext = this;
}
private void btnRandomize_Click(object sender, RoutedEventArgs e)
{
Random rand = new Random();
foreach (var chartValue in Values)
{
chartValue.Weight = rand.Next(0, 10);
}
}
}
}

@ -11,6 +11,8 @@
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TabControl SelectedIndex="0">
<TabItem Header="Basic Plots">
<StackPanel Grid.Column="0" Orientation="Vertical" Margin="5">
<Button x:Name="btnLines" Content="Lines" Margin="3" Click="btnLines_Click"/>
<Button x:Name="btnColumns" Content="Columns" Margin="3" Click="btnColumns_Click"/>
@ -25,6 +27,9 @@
<Button x:Name="btnDoughnut" Content="Doughnut" Margin="3" Click="btnDoughnut_Click"/>
<Button x:Name="btnSolidGauge" Content="Solid Gauge" Margin="3" Click="btnSolidGauge_Click"/>
<Button x:Name="btnAngularGauge" Content="Angular Gauge" Margin="3" Click="btnAngularGauge_Click"/>
<Button x:Name="btnHeatMap" Content="Heat Map" Margin="3" Click="btnHeatMap_Click"/>
</StackPanel>
</TabItem>
</TabControl>
</Grid>
</Window>

@ -103,5 +103,11 @@ namespace Tutorial
AngularGaugeWindow win = new AngularGaugeWindow();
win.Show();
}
private void btnHeatMap_Click(object sender, RoutedEventArgs e)
{
HeatMapWindow win = new HeatMapWindow();
win.Show();
}
}
}

Loading…
Cancel
Save