Re: [問題] 散佈圖中點顏色依照個數來呈現

作者: andrew43 (討厭有好心推文後刪文者)   2021-10-19 17:40:26
先要請你確認如何決定個數;我以下假設個數是指同x同y列的列數。
你可以先生成一個濃縮的資料框並計算個數,再用它來畫圖。
library(readxl)
library(ggplot2)
library(dplyr)
testdata <- read_excel("testdata.xlsx")[, 1:2]
d.by.x.y <-
testdata %>%
# 按同oldsensor且同newsensor分組求N
group_by(oldsensor, newsensor) %>%
summarise(
oldsensor = mean(oldsensor),
newsensor = mean(newsensor), #mean在此例沒有特別意義,就只是取出值
N = n()) %>%
# 列順序按N大小,對之後畫圖有重要效果(讓深色在上層而淺色在下層)
arrange(N)
ggplot(d.by.x.y, aes(newsensor, oldsensor)) +
geom_point(aes(color = N), shape = 15, size = 2) + # size 大一點會比較「滿」
coord_fixed() +
geom_abline(slope = 1, intercept = 0) +
scale_colour_steps(low = "#fef0d9", high = "#d7301f", breaks = seq(0, 30,
1)) +
theme_classic() +
theme(legend.key.size = unit(1.5, "cm")) +
xlim(c(24, 32)) + ylim(c(24, 32))
結果: https://i.imgur.com/YUTWPuA.png
※ 引述《studioA (understand?)》之銘言:
: [問題類型]:
: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
:
: [軟體熟悉度]:
: 入門(寫過其他程式,只是對語法不熟悉)
: [問題敘述]:
: 我想畫一張散佈圖,其中每個點的顏色呈現,以個數為基準
: 我想要圖片呈現如下
: https:// i.imgur.com/kRXLERk.png
: 我用ggplot2來繪製,但總是畫不出自已要的效果
: 不知道哪裡卡關 只好上來求助各位
: [程式範例]:
: setwd("D:/R_workspace")
: library(readxl)
: testdata <- read_excel("test.xlsx")
: library(ggplot2)
: my.plot1 <- ggplot(testdata, aes(newsensor,oldsensor, colour = oldsensor)) +
: geom_point()
: my.plot1
: 結果出現 這種圖 https:// i.imgur.com/vZaVGSv.png
: 參考檔案 放在 ppt.cc/fAmkbx
: [環境敘述]:
: 請提供 sessionInfo() 的輸出結果,
: 裡面含有所有你使用的作業系統、R 的版本和套件版本資訊,
: 讓版友更容易找出錯誤
:
: [關鍵字]:
:
: 選擇性,也許未來有用
:
作者: locka (locka)   2021-10-19 18:00:00
這種圖滿有意思的耶,謝謝A大,來玩玩看^^
作者: andrew43 (討厭有好心推文後刪文者)   2021-10-19 18:43:00
我原本還以為用到二維kernel,但試了發現沒有比較容易後來想想,原po也可能是希望資料預先網格化再算個數。有需要再回覆。

Links booklink

Contact Us: admin [ a t ] ucptt.com