سلام میتونید از این روش استفاده کنید
سورس رو هم میزارم
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
namespace chart_datagridview
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//dataGridView1.Rows.Clear();
dataGridView1.Columns.Clear();
dataGridView1.Columns.Add("state", "");
dataGridView1.Columns.Add("sanity", "SANITY");
dataGridView1.Columns.Add("unit", "UNIT");
dataGridView1.Columns.Add("issuesDb", "ISSUES DB");
// filling in some data
dataGridView1.Rows.Add("ALL PASSED", 86, 21, 2);
dataGridView1.Rows.Add("FAILED", 7, 0, 1);
dataGridView1.Rows.Add("Cancelled", 0, 0, 0);
// Now we can set up the Chart:
List<Color> colors = new List<Color> { Color.Green, Color.Red, Color.Black };
chart1.Series.Clear();
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
Series S = chart1.Series.Add(dataGridView1[0, i].Value.ToString());
S.ChartType = SeriesChartType.Column;
S.Color = colors[i];
}
// and fill in all the values from the dgv to the chart:
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
for (int j = 1; j < dataGridView1.Columns.Count; j++)
{
int p = chart1.Series[i].Points.AddXY(dataGridView1.Columns[j].HeaderText, dataGridView1[j, i].Value);
}
}
}
}
}
http://www.w3-farsi.com/forum/?qa=blob&qa_blobid=6714767856121042971