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