同学告诉我需要引用一个owc控件 还是不明白 希望能有相关代码……
解决方案 »
- 如何通过webbrowser拖动form
- 遍历一个CheckedListBox的所以Item,如何知道当前的Item是Checked,还是没有Checked
- 记录用户在线时长,可以用什么方式实现?
- c#指针问题!!!
- ConnectionString 属性尚未初始化。(网上找了哈没解决)
- 请教各位大侠,C#和注册表的问题!
- 用button给datagrid增加新记录问题
- 通过UDL文件连接数据库
- "跪求.......,跪求......."请问提问者:跪是什么意思啊???!!!你是CSDN的一员吗?你把CSDN看成什么呢?CSDN究竟是什么?
- 做了个CSDN的助手,大家来分享!
- FarPoint控件看着很容易实际确很难的问题
- 窗体继承问题_从母窗体继承过来的组件或控件,是否可以在继承子窗体上进行修改?
private Rectangle rect = new Rectangle(250, 150, 200, 200);
public ArrayList sliceList = new ArrayList();
int[] valArray ={ 50, 25, 75, 100, 50 };
Color[] clrArray ={ Color.Red,Color.Gray,Color.Yellow,Color.Pink,Color.Aqua};
int total = 0;
private void DrawPieChart(bool fiMode)
{
Bitmap curbitmap = new Bitmap(500, 300);
Graphics g = Graphics.FromImage(curbitmap);
g.SmoothingMode = SmoothingMode.AntiAlias;
float angle = 0;
float sweep = 0;
//zongshu
for (int i = 0; i < valArray.Length; i++)
{
total += valArray[i];
}
//从数组中取出颜色和值 并计算扫描角
for (int i = 0; i < valArray.Length; i++)
{
int val = valArray[i];
Color clr = clrArray[i];
sweep = 360f * val / total;
//如果填充模式,绘制饼图
if (fiMode)
{
SolidBrush brush = new SolidBrush(clr);
g.FillPie(brush, 20.0f, 20.0f, 200, 200, angle, sweep);
}
else
{
Pen pn = new Pen(clr, 2);
g.DrawPie(pn,20.0f,20.0f,200,200,angle,sweep);
}
angle += sweep;
}
//将输出发送到浏览器
curbitmap.Save(this.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
curbitmap.Dispose();
g.Dispose();
}
protected void Button1_Click(object sender, EventArgs e)
{
DrawPieChart(true);
}
using System.Drawing;
using System.Drawing.Drawing2D;
这是绘制饼图的,局限性还是比较大的
可能有更好用的第三方控件,你可以查找下
根据这个数组来绘制比例图
你可以从数据库中动态的取出数据,填充数组
然后定义多一些颜色 如果需要比较简单的功能,问题应该不大
至于其它的,如绘制区域的大小,自己调整下就可以
{
System.Web.UI.WebControls.Image image =new System.Web.UI.WebControls.Image();
//创建ChartSpace对象来放置图表
OWC10.ChartSpace objCSpace=new OWC10.ChartSpaceClass();
OWC10.ChChart objChart=objCSpace.Charts.Add(0); //在ChartSpace对象中添加图表,Add方法返回chart对象 //指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到
objChart.Type=OWC10.ChartChartTypeEnum.chChartTypeLineMarkers;
//指定图表是否需要图例
objChart.HasLegend=true;//指定图表工作区中含有图例
// -------设置图例-------------------------------------------- objChart.Legend.Font.Size = 9 ;//'其他有关字体项的设置参见设置图表标题部分
//给定标题
objChart.HasTitle=true;
objCSpace.HasChartSpaceTitle=true;
objCSpace.AllowScreenTipEvents=true;
objCSpace.DisplayBranding=true;
objCSpace.ChartSpaceTitle.Caption= "我的OWC";
objChart.Title.Font.Bold=true;
objChart.Title.Font.Color="red";
objCSpace.AllowFiltering=true;
objCSpace.AllowGrouping=true;
objCSpace.DisplayBranding=true;
objCSpace.DisplayFieldButtons=true;
objCSpace.HasPassiveAlerts=true; objCSpace.HasUnifiedScales=true;
objCSpace.IsDirty=true;
//给定x,y轴的图示说明
objChart.Axes[0].HasTitle = true;
objChart.Axes[0].Title.Caption = "Y : 数量";
objChart.Axes[1].HasTitle = true;
objChart.Axes[1].Title.Caption = "X : 月份";
//计算数据
/*categories 和 values 可以用tab分割的字符串来表示*/
string strSeriesName = "我的OWC";
string strCategory = "1" + '\t' + "2" + '\t' + "3" + '\t'+"4" + '\t' + "5" + '\t' + "6" + '\t'+ "7" + '\t' + "8" + '\t'+"9" + '\t' + "10" + '\t' + "11" + '\t';
string strValue = "9" + '\t' + "9" + '\t' + "6" + '\t'+"4" + '\t' + "12" + '\t' + "6" + '\t'+ "8" + '\t' + '9' + '\t'+'2' + '\t' + "12" + '\t' + "6" + '\t'; //添加一个series
objChart.SeriesCollection.Add(0); //给定series的名字
objChart.SeriesCollection[0].SetData (OWC10.ChartDimensionsEnum.chDimSeriesNames,
+ (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName); //给定分类
objChart.SeriesCollection[0].SetData (OWC10.ChartDimensionsEnum.chDimCategories,
+ (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory); //给定值
objChart.SeriesCollection[0].SetData
(OWC10.ChartDimensionsEnum.chDimValues,
(int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strValue);
//输出成GIF文件.
//创建GIF文件的相对路径.
string ProjectName=ConfigurationSettings.AppSettings["ProjectName"];
string ImageUrl=@"c:\me.gif";;
objCSpace.ExportPicture(ImageUrl, "GIF", 750, 400);
image.ImageUrl=ImageUrl;
return image; }