翻譯|使用教程|編輯:楊鵬連|2021-06-28 10:51:47.910|閱讀 201 次
概述:本文主要介紹了高性能圖表控件LightningChart關(guān)于方形散點(diǎn)圖的問(wèn)題解答。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
LightningChart.NET完全由GPU加速,并且性能經(jīng)過(guò)優(yōu)化,可用于實(shí)時(shí)顯示海量數(shù)據(jù)——超過(guò)10億個(gè)數(shù)據(jù)點(diǎn)。LightningChart包括廣泛的2D、高級(jí)3D、Polar、Smith、3D餅/甜甜圈、地理地圖和GIS圖表以及適用于科學(xué)、工程、醫(yī)學(xué)、航空、貿(mào)易、能源和其他領(lǐng)域的體位功能。
點(diǎn)擊下載LightningChart.NET最新試用版 LightningChart JS最新試用版
Q:方形散點(diǎn)圖的問(wèn)題
我們的軟件需要一個(gè)散點(diǎn)圖,其中有一個(gè)完美的方形圖表區(qū)域,每個(gè)軸上的值都相同,并且有一個(gè)圓形陰影區(qū)域。
為此,我使用 FreeformPoint 系列,強(qiáng)制圖表的寬度等于圖表的高度,并將 ViewXY 的 ManualAspectRatioWH 設(shè)置為 1。要?jiǎng)?chuàng)建陰影區(qū)域,我使用 0,0 處的 SeriesPoint 并將 PointShapeStyle 設(shè)置為所需大小和厚度的圓。為了獲得這個(gè)圓的正確大小,我使用了一個(gè)系數(shù)值(圖表區(qū)域高度除以軸范圍)。這給了我?guī)缀跬昝赖慕Y(jié)果,但也存在問(wèn)題。
您可以在屏幕截圖中看到陰影區(qū)域似乎偏離中心,x 軸上 -150 之前的空白區(qū)域比 150 之后的多。 y 軸也存在類似的問(wèn)題。
在逐字計(jì)算像素后,我發(fā)現(xiàn)網(wǎng)格線不均勻。兩個(gè)“行”在高度上是一個(gè)額外的像素,而一列在寬度上是一個(gè)額外的像素(我在圖片中用紅線標(biāo)記了有問(wèn)題的行和列)。圖表也比它高兩個(gè)像素寬。這會(huì)導(dǎo)致陰影區(qū)域的大小和厚度不正確。準(zhǔn)確性對(duì)我們的軟件至關(guān)重要,因此我必須確保將所有圖表元素繪制在正確的位置并具有正確的大小。
是否有可能在沒(méi)有這些不一致的情況下創(chuàng)建一個(gè)完美的方形圖表區(qū)域?
您還知道在 Lightning Chart 中實(shí)現(xiàn)圓形陰影區(qū)域的更好方法嗎?該區(qū)域的大小和厚度必須與軸相關(guān)聯(lián),因此它們會(huì)在縮放時(shí)調(diào)整大小。當(dāng)前系數(shù)方法是以前的圖表包中唯一可能的方法,因此現(xiàn)在已沿用。我知道這是一個(gè)相當(dāng)不標(biāo)準(zhǔn)的圖表,但我感謝您的幫助。
我們目前正在使用 v.8.3.1_20180404
A:這個(gè)問(wèn)題很可能是由于 LightningChart 無(wú)法平均劃分可用的圖形大小(以像素為單位)。圖表具有一定的像素大小,圖形區(qū)域(由邊距限制的區(qū)域,其中顯示數(shù)據(jù))也是如此。您實(shí)際上可以通過(guò)調(diào)用 _chart.ActualWidth 和 _chart.ViewXY.XAxes[0].GetActiveAxisArea().Width 來(lái)檢查這些的確切大小。請(qǐng)注意,這些僅在圖表呈現(xiàn)后才起作用。
如果您的圖形區(qū)域具有例如 700 的高度,并且您嘗試將其劃分為由網(wǎng)格線分隔的 12 個(gè)段(它們也是 1 個(gè)像素寬,總共 13 個(gè),一個(gè)在頂部,一個(gè)在底部),您將擁有這種問(wèn)題。這些段最終具有 57,25 像素的高度。由于無(wú)法呈現(xiàn)部分像素,圖表最終具有像 57、57、57、58、57...
要解決此問(wèn)題,您可以嘗試修改圖表大小和圖形區(qū)域大小,后者可以通過(guò)更改邊距設(shè)置來(lái)完成。
_chart.Width = 700; _chart.Height = 700; _chart.ViewXY.AxisLayout.AutoAdjustMargins = false; _chart.ViewXY.Margins = new Thickness(40, 20, 10, 40);
在這種情況下,AspectRatio 通常是最佳選擇。您還可以仔細(xì)檢查它是否設(shè)置正確。我們有幾個(gè)使用它的演示示例:WinForms 端的“強(qiáng)度網(wǎng)格、圓/極幾何”、“圖像查看器”和“硅晶片圖分析”。
圓形區(qū)域的創(chuàng)建方式可能不會(huì)對(duì)問(wèn)題本身產(chǎn)生任何影響,但您也可以使用 Annotation 或 EventMarker(Chart 或 SeriesEventMarker)創(chuàng)建它。標(biāo)記具有 Offset 屬性的好處,可用于以像素為單位調(diào)整它們的位置。
始終可以選擇在 support(at)arction.com 上向我們的技術(shù)支持發(fā)送示例應(yīng)用程序,我們可以查看該問(wèn)題(盡管您需要有效訂閱才能獲得更多技術(shù)支持)。
Q:如果我理解正確,您是說(shuō)網(wǎng)格線不是覆蓋在圖表上,而是實(shí)際上增加了高度和寬度?那么一個(gè)有 12 個(gè)線段和網(wǎng)格線的圖表,會(huì)比沒(méi)有網(wǎng)格線的同一個(gè)圖表高 13 個(gè)像素嗎?
如果是這種情況,那么它肯定可以解釋我在陰影區(qū)域看到的問(wèn)題。
有沒(méi)有辦法覆蓋網(wǎng)格線而不是將它們“插入”到高度和寬度中?
我目前正在使用我在另一篇文章中找到的公式計(jì)算圖表區(qū)域的高度:
_chart.ActualHeight - (_chart.ViewXY.Margins.Top + _chart.ViewXY.Margins.Bottom)
這會(huì)給出正確的大小嗎?
我試過(guò)使用你建議的變量,而 _chart.ViewXY。XAxes[0].GetActiveAxisArea().Width 和 Height 工作正常,_chart.ViewXY。Y Axes[0].GetActiveAxisArea().Width 和 Height 總是返回零。A:我仔細(xì)檢查了我們的源代碼。我可能在這里提供了一些錯(cuò)誤信息,為此道歉。網(wǎng)格線實(shí)際上是重疊的。不過(guò)問(wèn)題還是一樣;圖形區(qū)域不能在段之間平均劃分,并且由于四舍五入,某些段比其他段大一個(gè)像素。
您使用的計(jì)算是正確的,但沒(méi)有考慮圍繞圖形繪制的邊界。目前,它在頂部和底部繪制在圖形之外,但不在左側(cè)和右側(cè)(我們可能需要在未來(lái)的版本中修復(fù)這個(gè)問(wèn)題,以便在所有方面都相同)。結(jié)果是 GetActiveAxisArea 返回的高度值比您使用的公式少 2px。因此 GetActiveAxisArea 可能更可靠。
GetActiveAxisArea 應(yīng)該適用于兩個(gè)軸,但前提是圖表已首先呈現(xiàn)。為了確保這一點(diǎn),您可以調(diào)用 AfterRendering -event 中的方法。
根據(jù)我們的數(shù)據(jù)庫(kù),您的訂閱已過(guò)期。為了獲得更多技術(shù)支持以及新功能和錯(cuò)誤修復(fù),請(qǐng)考慮續(xù)訂訂閱。
如果有任何疑問(wèn),請(qǐng)以獲取更多信息。
如果您對(duì)該圖表控件感興趣,歡迎加入圖表控件QQ交流群:740060302
欲購(gòu)買LightningChart正版授權(quán),或了解更多產(chǎn)品信息請(qǐng)點(diǎn)擊
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: