2013-05-31 1 views
1

안녕하세요 저는 ASP.NET MVC 3 프로젝트에서 값 사이의 거리가 다른 차트를 제공하고 싶습니다. 그러므로 나는 yCords위한 xCords 및 문자열 수레를 사용하고 :값 사이의 거리가 다른 기록 차트

public FileContentResult CreateChart() 
{ 
    string[] xCords; float[] yCords; 

    [... "fill xCords an yCords" ...] 

    Chart bytes = new Chart(width: 800, height: 400) 
     .AddSeries(

      chartType: "line", 
      xValue: xCords, 
      yValues: yCords 
     ); 

    return File(bytes.GetBytes("png"), "image/png"); 
} 

문제는 모두 동일한 값 사이의 거리가 존재한다는 것이다. 그럼 점 표기보다 막대 차트라고 할 수 있습니다 : 이유는 x 값의 유형 문자열이지만 상상할 수는 있지만 잘 모르겠습니다. 문제를 해결하는 방법은 무엇입니까?

편집 : StockAquire의 종류에 많은 항목이 포함 RatingTime

stockAquires :

xCords = new DateTime[stockAquires.Count]; 
    { 
     foreach (StockAquire stockAquire in stockAquires) 
     { 
      xCords[stockAquires.IndexOf(stockAquire)] = stockAquire.RatingTime; 
     } 
    } 

StockAquire 하나 개의 속성으로 포함 : 나는 날짜 시간에 xCords의 유형을 변경할 때 나는 xCords을 생산하는 방법

+0

x 축의 날짜 사이의 거리가 다른가요? –

+0

예, 이것은 설명하려고 시도한 것입니다! –

+0

그런데 왜 xCords 문자열 대신 DateTimes가 있습니까? –

답변

0

축에서 DateTime을 사용하려면 다음 두 가지 작업을 수행해야합니다.

  1. 축의 데이터 유형을 DateTime으로 설정하십시오.

  2. DateTime에서 double까지의 값을 ToOADate을 사용하여 변환하십시오.

그래서 당신의 날짜 채우기 코드가됩니다 : 당신은 당신이 명시 적으로 데이터 형식을 설정해야합니다 차트를 만든 후 다음

double[] xCords; 

xCords = new double[stockAquires.Count]; 
{ 
    foreach (StockAquire stockAquire in stockAquires) 
    { 
     xCords[stockAquires.IndexOf(stockAquire)] = stockAquire.RatingTime.ToOADate(); 
    } 
} 

x 축 : 추가 정보를 위해

bytes.Series[0].XValueType = ChartValueType.DateTime; 

this article을 참조하십시오.

+0

감사하지만 지금까지 "bytes.Series [0] .XValueType = ChartValueType.DateTime;"오류가 발생했습니다. " 오류 : Series 및 ChartValueType에 대한 정의가 없습니다 또한 참조 사용을 포함 할 수 없습니다 –

+0

그 행을 어디에 넣었으며 오류 메시지는 무엇입니까? –

+0

필자는 설명의 첫 번째 부분에서 마지막 줄 바로 앞에 그 줄을 배치했습니다. (반환 함수 이전) –