- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
默认情况下,极坐标图上的角度按顺时针方向从 0 到 360,但我希望它们逆时针(逆时针)
chart.ChartAreas[0].AxisX.Title = "Elevation";
chart.ChartAreas[0].AxisY.Title = "Power(dBm)";
chart.ChartAreas[0].BackColor = System.Drawing.Color.FromArgb(211, 223, 240);
chart.ChartAreas[0].BorderColor = System.Drawing.Color.FromArgb(26, 59, 105);
chart.ChartAreas[0].AxisY.IsStartedFromZero = false;
chart.PrePaint += new EventHandler<ChartPaintEventArgs>(chart_prePaint);
我已经尝试根据我发现的一些示例代码更改标签:
CustomLabelsCollection labels = chart.ChartAreas[0].AxisX.CustomLabels;
if (labels == null) return;
for (int i = 0; i < labels.Count - 1; i++)
{
if (labels[0].Text == "360") break;
labels[i].Text = (360 - int.Parse(labels[i].Text)).ToString();
labels[i].ToolTip = "Angle in Degrees";
}
代码会更改对象中的标签,但不会更改图表中的标签。每次事件被触发并且我们回到这个事件处理程序时,标签都被重置为原来的样子。工具提示也被重置。
更令人困惑的是,我不确定为什么首先要填充 CustomLabels 对象 - 我没有这样做。
知道为什么更改没有效果吗?
提前致谢!
最佳答案
如果你想要这样的东西:..
.. CustomLabels
确实是实现它的一种方式。我找不到让轴自行反转的方法..
这是我使用的 C# 代码:
Axis ay = chart.ChartAreas[0].AxisY;
ay.LabelStyle.Enabled = false;
Axis ax = chart.ChartAreas[0].AxisX;
ax.CustomLabels.Clear();
int step = (int)ax.Interval;
if (step == 0) step = 30;
for (int i = 0; i < 360; i+=step)
{
int a = 360 - i; // the angle to target
var cl = new CustomLabel();
cl.Text = a + "°";
cl.FromPosition = a + 0.01; // create a small..
cl.ToPosition = a - 0.01; // ..space to place the label !
ax.CustomLabels.Add(cl);
}
请注意,只有 Labels
是相反的,不是值!
开始于 0
只需将循环条件更改为 <=
并检查 i>0
在创建标签之前!
如果你没有设置 Interval
我使用默认间隔 30
;根据需要更改!
CustomLabels
默认情况下集合是创建的,所以它不是null
但它是空 ( Count==0
)。如果你没有创建任何东西,那么就没有原始的 AxisLabels
正在展示。 (只显示一种类型!)
除非你有充分的理由,比如非常动态的数据,否则你不应该在 xxxPaint
中添加或修改任何内容。事件!他们可能经常被调用,这些事件实际上只是为了绘图。 (((有时用于测量))
关于c# - MSchart 极坐标图自定义标签不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52187182/
我用过 MSChart Control在我的一个 VB.NET项目。我决定在饼图中显示如下表所示的数据。 但是标签相互重叠以摆脱它我试过“智能标签 ”属性如下图。 Chart1.Series("Def
如何格式化图表标签? 我只需要看一下后面的2位数字即可。 我尝试chart.ChartAreas.First().AxisY.LabelStyle.Format = "#.##";和0.00 我也尝试
我正在尝试并排创建两个共享同一轴的饼图。有没有人有使用 MSChart 完成此操作的代码示例? 我想要实现的示例: 到目前为止,这是我的代码: Chart chart = new Ch
谁能告诉我如何在 MSChart 上显示 Total Collection 最佳答案 您可以使用 chart.Annotations 属性来获得类似的结果。 例如使用以下代码(位于填充图表之后): v
我有一个带注释的 MSChart,图表区域很大,因此使用老式 800x600 的人可以看到图表。 问题是,当我在这种低分辨率下查看图表时,其中的注释会随着图表缩小,并开始切断最后几个字母。 例如,普通
如何从一个点缩放例如从点 300 到 500 axisX 和 50 到 100 AxisY 逐步缩放 当前位置 private void chart1_MouseClick(object sender
我有一个带有虚线的系列: tmpChart.Series["function"].BorderDashStyle = ChartDashStyle.Dash; 但是我怎样才能改变破折号之间的间距呢?
默认情况下,极坐标图上的角度按顺时针方向从 0 到 360,但我希望它们逆时针(逆时针) chart.ChartAreas[0].AxisX.Title = "Elevation"; chart.Ch
如何在图表中显示每个柱的轴线?我只有第二个,第四个......, alt text http://img35.imageshack.us/img35/6106/chartiu.png 最佳答案 我找到
我在 VS2010 中有一个带有简单折线图的 Windows 窗体项目。 数据是动态的,始终介于 1.4000 和 1.5000 之间。 我希望 Y 轴的网格线/标签始终显示在每个 #.##20 数据
我在互联网的某个地方找到了这段代码 private void PopulateChart() { int elements = 500; Random
您好,我正在尝试从 sql 填充 mschart,但即使系列具有不同的值,图表也是相同的。所以所有系列都有相同的线相互重叠。 sqlConnection.Open();
这一定是一个愚蠢的问题,但我有点陷入其中。我需要使用 c# 为 Web 应用程序在 mschart 上显示 6000 多条记录。但他的问题是它没有空格显示,但这是 Not Acceptable ,因为
MSChart 没有填满整个图表区域,我尝试使用示例 ( Why Doesn't MSChart Fill Entire Chart Area? ) 但它不起作用 我正在使用下面的代码 volum
我正在尝试在 MSChart 中绘制两个数据系列。我正在使用两个轴,但我希望网格线和刻度线对齐。 这是我现在拥有的一个例子:http://i.imgur.com/w5OvX.png (原谅色差) 如您
我正在使用 MSCharts 并为坐标轴使用日期,但不禁注意到最后一条网格线的坐标轴标签是隐藏的。下图显示了这一点。 我为此使用的代码是: Public Function buildXAxis(ByV
我正在尝试使用 C# 中的 MSChart 渲染折线图,并采用虚线样式。我设置样式没有问题,但我有大量数据。这会导致虚线渲染出错,因为它似乎在绘制每个线段时重新启动“虚线”序列。因此,我得到一条看起来
如何在运行时创建注释以及如何使用 Annotation.BeginPlacement() 启用最终用户放置?我试过以多种方式做到这一点,但无法让它发挥作用。在调用 BeginPlacement() 后
我在 Winform 中绘制的 MSChart 有几个问题。 我无法在图表右侧显示轴 Y2 值,这应该是默认值 - 类似于此 question 带状线不会绘制,并且 是否可以将轴 Y1 和 Y2 的零
我想自定义下面数据点上的标签,以便它们呈现为(以图表上的第一个数据点为例): 4:10 - 4:40黄色类 最佳答案 Datapoint 有一个可以编程设置的标签属性: DataPoint dp =
我是一名优秀的程序员,十分优秀!