我有一个mschart(System.Windows.Forms.DataVisualization.Charting.Chart)控件添加到我已配置为点图表(不是快点)的窗体。我已经知道如何通过以下方式个性化系列中每个点的标记大小:
MyChart.Series[0].Points[0].MarkerSize = K;
但我一直无法找出这个值实际上是基于什么,因为它似乎不是线性的。我想做的是,有一些计算有效标记尺寸的方法,该标记尺寸是相对于x或y轴的半径或直径。
换句话说,假设我有一个散点图,其x和y轴值分别从-100到100(比如“米”),我想添加一个半径为5的圆点。如此规模的米,我该怎么做呢?例如,如果我将比例改为-200到200,那么相同的点在视觉上会显得更小。我已经到处搜索,找不到明确的答案。
提前致谢!
答案 0 :(得分:1)
标记大小以像素为单位。你可以试试这段代码(未经测试!):
static int CalcualteMarkerPixelSize(double diameterOnXAxis, Chart chart)
{
double innerWidthScale = chart.ChartAreas[0].AxisX.Maximum - chart.ChartAreas[0].AxisX.Minimum;
float innerWidthPct = chart.ChartAreas[0].InnerPlotPosition.Width / 100;
float innerWidthPixels = chart.Width*innerWidthPct;
return (int) (diameterOnXAxis/innerWidthScale*innerWidthPixels);
}