簡體   English   中英

更改頻率圖中的x軸

[英]Change x-axis in frequency plot

我寫了一個簡短的腳本,用原始數據創建頻率分布圖。 我唯一不能做對的就是x軸。 正如您在下面看到的那樣,當數字太長時,它們以難以理解的電子記號書寫(而且,標簽足夠長,無法從圖片中切出)。

在此處輸入圖片說明

通常我會使用digits = X但是不幸的是,這種表示法不能與命令cut一起使用。 隨附完整代碼。 此外,熱烈歡迎任何其他建議使圖表更具可讀性。

##Paramaters definition
num.bins = 60 #The number of bins you want to be used
w.data = 2 #The column you have the data in

##Data loading
dataset = read.csv(file.choose())

##Calculating frequency
d.min = min(dataset[,w.data])
d.max = max(dataset[,w.data])

breaks = seq(d.min, d.max, by = (d.max-d.min)/num.bins)
d.cut = cut((dataset[,w.data]), breaks, right = FALSE, digits = 6)
d.freq = table(d.cut)

##Plot
plot(d.freq, ylab = 'Frequency', las = 2)

很奇怪地回答我自己的問題; 但是,我找到了解決方案。

cut函數具有dig.lab參數,該參數等效於digits 為什么用相同的名稱實現具有相同功能的兩個命令對我來說還是很模糊的。

因此,修改后的代碼如下所示:

##Paramaters definition
num.bins = 35 #The number of bins you want to be used
w.data = 2 #The column you have the data in

##Data loading
#dataset = read.csv(file.choose())

##Calculating frequency
d.min = min(dataset[,w.data])
d.max = max(dataset[,w.data])

breaks = seq(d.min, d.max, by = (d.max-d.min)/num.bins)
d.cut = cut((dataset[,w.data]), breaks, right = FALSE, dig.lab = 6)
d.freq = table(d.cut)

##Plot
par(mar=c(4,4.5,3,1))
par(oma=c(4,2,0,0) )
plot(d.freq, ylab = 'Frequency', las = 2)
mtext(side=3, text="Frequency Distribution", line=1.2, cex=1.5)

結果是:

非常感謝@joran和@celiomsj為我指出正確的方向。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM