我在我的项目中集成了DotNet Chart,并试图查看我是否可以获得每个月注册的用户数量,并在该月份的天数中重复使用
我有一个用户模型,其中一个属性是SignUp日期,那么请问我该如何使用它来提取数据数天并在图表中显示
//
// GET: /AppUser/Details/5 - returns all App Users
// [Route("users/")]
public ActionResult Chart()
{
//This is were and getting the data from database, Please how can I break It down?
var users = _appUserService.GetAllUsers().Where(x => x.SignupDate == DateTime.Now);
DotNet.Highcharts.Highcharts chart = new DotNet.Highcharts.Highcharts("chart")
.SetXAxis(new XAxis
{
Categories = new[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16",
"17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31" }
})
.InitChart(new Chart { DefaultSeriesType = ChartTypes.Line })
.SetTitle(new Title { Text = "User Registration per Day" })
.SetSubtitle(new Subtitle { Text = "Total Count" })
.SetYAxis(new YAxis { Title = new YAxisTitle { Text = "Approximate Count" } })
.SetSeries(new Series
{
Name = "Monthly Days",
Data = new Data(new object[] { 29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4, 29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4, 29.9, 71.5, 106.4, 129.2, 144.0, 176.0 })
});
return View(chart);
}
答案 0 :(得分:0)
我终于明白了 这就是
// Quering all Newly Registered Users by Day
var queryUsers = _appUserService.GetAllUsers()
.Where(w => w.SignupDate.Month == DateTime.Now.Month)
.GroupBy(g => g.SignupDate.Day)
.OrderBy(o => o.Key)
.Select(grp => new { Day = grp.Key, Count = grp.Count() });
int[] userCategories = queryUsers.Select(x => x.Day).ToArray();
string[] resultUserCategories = userCategories.Select(x => x.ToString()).ToArray();
int[] userData = queryUsers.Select(x => x.Count).ToArray();
object[] userObjArry = userData.Cast<object>().ToArray();
DotNet.Highcharts.Highcharts userChart = new DotNet.Highcharts.Highcharts("userchart")
.SetXAxis(new XAxis
{
Categories = resultUserCategories
}
)
.InitChart(new Chart { DefaultSeriesType = ChartTypes.Line })
.SetTitle(new Title { Text = "Daily Record" })
.SetSubtitle(new Subtitle { Text = "Total Count" })
.SetYAxis(new YAxis { Title = new YAxisTitle { Text = "Approximate Count" } })
.SetSeries(new[]{
new Series
{
Name = Convert.ToString("Number of New Users"),
Data = new Data(userObjArry)
}
});
return PartialView("_Users", userChart);