最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【R語言】坐標刻度視覺錯位處理方法

2023-07-10 19:12 作者:補再天明業(yè)作  | 我要投稿

????????最近在使用ggplot2畫圖時,發(fā)現(xiàn)如果將坐標軸設(shè)置為無冗余量(expand=c(0,0)),即圖框與坐標起始截止一致,在預(yù)覽和導(dǎo)出的圖像都會出現(xiàn)坐標軸起始和截止刻度略視覺錯位的情況,這種情況并不是RStudio導(dǎo)致的,因為用自帶的R.exe和Rgui.exe繪制出的圖仍然如此(圖1,圖2所示),這種錯位在使用封閉的panel時(即四邊均框住數(shù)據(jù)點)尤為明顯。但是,python的matplotlib畫圖并導(dǎo)出(無論是spyder還是jupyterlab),則不會出現(xiàn)這種情況。

(注:R語言的圖區(qū)分為plot,對應(yīng)Excel繪圖的圖表區(qū),plot的框線即為框住整個圖像的外框線,和panel,對應(yīng)Excel繪圖的繪圖區(qū),即兩個坐標軸構(gòu)成的矩形區(qū)域)


圖1. 起始刻度錯位
圖2. 截止刻度錯位

????

????????而這種錯位實際不是真正錯位,而是在R語言成圖時,刻度線定位的起始點是坐標軸的起/終點,再加上刻度線的寬度,造成了這種視覺錯位的情況。為盡量解決這種錯位,摸索了以下幾種方法:

????????1. 導(dǎo)出矢量圖后放入矢量圖編輯軟件(如CorelDraw、Adobe Illustrator等)手動調(diào)整,好處是完美主義者無需糾結(jié)R中的圖像,只需要后期逐個修改。缺點就是如果繪制了大量圖像,再加上萬一后續(xù)對繪制的圖片進行數(shù)據(jù)的改動(指增加或刪減擬合線等圖形元素,篡改數(shù)據(jù)是不對的喲~),那么也需要重新修改坐標軸,工程量會很大。

????????2. 不使用這種繪圖風(fēng)格,轉(zhuǎn)為默認有冗余量的坐標軸,或者選擇非封閉的panel(非封閉的圖框視覺上的錯位感會少一些),例如theme_classic(),亦或者將刻度線轉(zhuǎn)為全部向內(nèi)(也會降低這種錯位感,但仍然存在,如圖3所示)


圖3. 刻度線轉(zhuǎn)為向內(nèi),axis.ticks.length = unit( -0.2, "cm"),這里“-0.2”換為其他負數(shù)皆可


????????3.通過少量放縮坐標軸起止,將這種視覺錯位抹平),好處是極大降低了視覺上的錯位(圖4),但缺點也很明顯:我個人猜測是R語言底層的緣故,導(dǎo)致需要協(xié)調(diào)調(diào)整橫縱坐標的起止才可以達成起止刻度與坐標軸起止重合這一目的,也就是說,當調(diào)整完終點重合后,已調(diào)整為重合的起點可能會再次略微不重合。因此,需要不斷多次調(diào)整坐標軸起止值并導(dǎo)出圖片放大查看。


圖4. 適當放縮坐標軸起始值達到緩解錯位的目的(例如這里將x軸起始設(shè)置為-0.0006,y軸起始設(shè)置為9.9)

????????

????????圖4中的x軸起始為-0.0006,這一值與x軸總范圍(0-0.5)并無任何比例關(guān)系。首次調(diào)整為-0.05時便視覺無錯位,但在調(diào)整完x軸截止的刻度線無錯位后,起始刻度線再次不重合,因此不斷調(diào)整坐標軸放縮的值才達到了刻度線與坐標軸和panel的重合。對y軸同理。以下是調(diào)整后的代碼:



【R語言】坐標刻度視覺錯位處理方法的評論 (共 條)

分享到微博請遵守國家法律
宽城| 霍城县| 攀枝花市| 衡山县| 永平县| 凤阳县| 芦溪县| 双鸭山市| 鄢陵县| 馆陶县| 龙陵县| 阜南县| 南投市| 三明市| 新郑市| 禹州市| 沙河市| 丰宁| 台南市| 木兰县| 仙居县| 庄河市| 城市| 无棣县| 赫章县| 自贡市| 永靖县| 灵璧县| 常熟市| 辛集市| 友谊县| 集贤县| 奇台县| 金川县| 横峰县| 延津县| 洪湖市| 荆州市| 吉木萨尔县| 哈巴河县| 安阳市|