C# 在图表中显示圆,半径以图表单位C表示#
小结:我试过像泡点和乱搞标记大小之类的方法,但这两种方法都不能以实际网格单位设置半径。气泡图=%和标记=点(忽略网格) 如何在图表中添加一个半径为网格单位的圆 -----旧的----- 我在气泡图中查看了如何改变气泡的大小,显然第二个Y值应该控制气泡的大小。。。除了它什么都不做 我不能使用标记大小作为解决方案,因为大小需要使用正确的单位,而不是像素 唯一能够改变大小的是最小和最大大小值。。。但是我不能用它精确地控制尺寸(更不用说那会很愚蠢) 没有代码,因为它没有特殊的代码或设置,应该很容易复制 编辑: 刚刚意识到气泡大小基于其他气泡大小,而不是网格。这是一个大问题,因为我需要一个半径为网格单位的圆。它也需要独处 我需要一个半径为网格单位的圆 MSChart中有3个坐标系:C# 在图表中显示圆,半径以图表单位C表示#,c#,winforms,charts,size,C#,Winforms,Charts,Size,小结:我试过像泡点和乱搞标记大小之类的方法,但这两种方法都不能以实际网格单位设置半径。气泡图=%和标记=点(忽略网格) 如何在图表中添加一个半径为网格单位的圆 -----旧的----- 我在气泡图中查看了如何改变气泡的大小,显然第二个Y值应该控制气泡的大小。。。除了它什么都不做 我不能使用标记大小作为解决方案,因为大小需要使用正确的单位,而不是像素 唯一能够改变大小的是最小和最大大小值。。。但是我不能用它精确地控制尺寸(更不用说那会很愚蠢) 没有代码,因为它没有特殊的代码或设置,应该很容易复制
- 数据值
- 某些区域的百分比,最显著的是
和图表区域
内部绘图位置
- 图表控件
ClientArea的像素
GraphicsPath
添加多边形注释
,也可以简单地添加椭圆符号
或者您可以绘制圆。以下是如何绘制:
private void chart_PrePaint(object sender, ChartPaintEventArgs e)
{
ChartArea ca = chart.ChartAreas[0];
Axis ax = ca.AxisX;
Axis ay = ca.AxisY;
Series s = chart.Series[0];
DataPoint dpCenter = s.Points[22];
dpCenter.MarkerStyle = MarkerStyle.Circle;
double xVal = dpCenter.XValue;
double yVal = dpCenter.YValues[0];
double rad = 2; // <<<<<= radius in values
float xRad = (float)(ax.ValueToPixelPosition(0) - ax.ValueToPixelPosition(rad));
float yRad = (float)(ay.ValueToPixelPosition(0) - ay.ValueToPixelPosition(rad));
float xc = (float)ax.ValueToPixelPosition(xVal);
float yc = (float)ay.ValueToPixelPosition(yVal);
Rectangle r = Rectangle.Round(new RectangleF(xc - xRad, yc - yRad,
xRad * 2, yRad * 2));
e.ChartGraphics.Graphics.DrawEllipse(Pens.Red, r );
}
private void chart_PrePaint(对象发送方,ChartPaintEventArgs e)
{
ChartArea ca=chart.ChartAreas[0];
轴ax=ca.axix;
轴ay=约轴Y;
系列s=图表系列[0];
数据点dpCenter=s.Points[22];
dpCenter.MarkerStyle=MarkerStyle.Circle;
双xVal=dpCenter.XValue;
双yVal=dpCenter.yValue[0];
double rad=2;//你在使用什么组件?你能提供一些代码片段吗?现在很难猜到这些东西……我在VS designer中使用图表组件。我真是个傻瓜——Winforms