Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫坐標(biāo)軸和數(shù)據(jù)不對應(yīng)、密集的散點圖無法顯示問題解決方法
QChart坐標(biāo)軸和數(shù)據(jù)不對應(yīng)問題描述:
lineseries->append(4, 10); lineseries->append(5, 8); Chart->addSeries(lineseries); // 將 series 添加至圖表中 axisX->setRange(0, 15);//設(shè)置X的顯示范圍 axisY->setRange(-20, 20); lineChart->setAxisX(axisX);//把軸添加到圖表中 lineChart->setAxisY(axisY);
結(jié)果發(fā)現(xiàn),數(shù)據(jù)系列中的點(4,10)在坐標(biāo)系中的坐標(biāo)不是(4,10)
原因在于,軸和數(shù)據(jù)系列沒有連接。
一個圖表QChart中可以有多個數(shù)據(jù)系列(也即一個圖表中可以有多條曲線,甚至可以同時包含散點圖和折線),每個數(shù)據(jù)系列都必須與兩個坐標(biāo)軸相連接。
連接方法有兩種:
(1)在給圖表設(shè)置軸時,順便與數(shù)據(jù)系列相連
lineChart->setAxisX(axisX, lineseries);//把軸添加到圖表中,同時把數(shù)據(jù)系列與這個軸相連
lineChart->setAxisY(axisY, lineseries);//
(2)單獨的語句把數(shù)據(jù)系列和軸相連(只有series已經(jīng)被添加進chart之后,再執(zhí)行attachAxis才能有效)
lineseries->attachAxis(axisX);
lineseries->attachAxis(axisY);
密集的散點圖無法顯示問題描述
如下圖所示:一個由1000個point組成的QScatterSeries,密集的部分顯示不出來,只有放大之后才能看清。
更惡劣的情況是,把chartView縮小之后,最后只能看見最后一個點。
原因分析:QT繪制圖形時,會用到QBrush和QPen,QPen用于繪制輪廓,QBrush用于繪制填充,默認(rèn)情況下,QScatterSeries繪制散點時,用的QPen的顏色是白色的,也即繪出的散點,帶白色邊框,圖像縮小之后,白色邊框把填充的紅色給遮擋住了。把散點放大之后,就能明白我說的意思了
如下圖:
解決方法:給QScatterSeries設(shè)置QPen的粗細為0,或者透明,或者不使用QPen,均可解決這一問題,示例代碼如下:
QScatterSeries scatterSeries; scatterSeries.setMarkerSize(25);//設(shè)置點的大?。▎挝唬合袼財?shù)) scatterSeries.setMarkerShape(QScatterSeries::MarkerShapeCircle);//點的形狀:方形/圓形/自己用pen畫 //方法1,設(shè)置畫筆的粗細為0 QPen pen; pen.setWidth(0); cntScatterSeries.setPen(pen); //方法2:把畫筆的顏色設(shè)置為透明 ScatterSeries.setPen(QPen(Qt::transparent)); //方法3:不使用畫筆(只用QBrush填充點,) ScatterSeries.setPen(QPen(Qt::NoPen));//畫出的點不帶輪廓
效果如下:已經(jīng)沒有輪廓了,這樣即使把圖像縮小也不會被白色輪廓給遮擋住了
本文主要介紹了Qt曲線圖表模塊QChart庫坐標(biāo)軸和數(shù)據(jù)不對應(yīng)、密集的散點圖無法顯示問題解決方法,更多關(guān)于Qt曲線圖表模塊QChart庫的知識請查看下面的相關(guān)鏈接
- 基于PyQt5制作一個數(shù)據(jù)圖表生成器
- Qt繪制圖表的實現(xiàn)
- Qt QChart 創(chuàng)建圖表的實現(xiàn)方法
- Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫一個chart中顯示兩條曲線詳細方法與實例
- Qt圖形圖像開發(fā)曲線圖表模塊QChart庫縮放/平移詳細方法與實例
- Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫讀取/設(shè)置X軸的顯示區(qū)間
- Qt圖形圖像開發(fā)曲線圖表模塊QChart庫基本用法、各個類之間的關(guān)系說明
- Qt圖形圖像開發(fā)之曲線圖表庫QChart編譯安裝詳細方法與使用實例
- Qt實現(xiàn)簡單折線圖表
相關(guān)文章
淺析C++調(diào)用Java的Jar包(帶參數(shù))問題
這篇文章主要介紹了C++調(diào)用Java的Jar包(帶參數(shù))問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-11-11C語言從猜數(shù)字游戲中理解數(shù)據(jù)結(jié)構(gòu)
猜數(shù)字是興起于英國的益智類小游戲,起源于20世紀(jì)中期,一般由兩個人或多人玩,也可以由一個人和電腦玩。游戲規(guī)則為一方出數(shù)字,一方猜,今天我們來用這個游戲案例理解數(shù)據(jù)結(jié)構(gòu)2022-04-04