私は、一連の原点を補間して構築したデータフレームを持っています(シアトルで実行されていたサイクルシェアスキームに関連しています)。ggplotのグラディエントカラー(比較的シンプル)
私はデータフレームinterpolated_flows呼ばれてきました:
line_id long lat seg_num count
1 1 -122.3170 47.61855 1 155
2 1 -122.3170 47.61911 2 155
3 1 -122.3170 47.61967 3 155
4 1 -122.3170 47.62023 4 155
5 1 -122.3169 47.62079 5 155
6 1 -122.3169 47.62135 6 155
は私がやりたい何か(と私はあなたがggplotを知っていれば比較的簡単だと思いますが)の幅でこれらの流れ(ライン)をプロットすることですcount
によって決定される線と、seg_num
によって決定される勾配とを含む。
これは、これまでの私の試みです:
#Create variables to store relevant data for simplicity of code
X <- interpolated_flows$long
Y <- interpolated_flows$lat
sgn <- interpolated_flows$seg_num
ct <- interpolated_flows$count
#Create a map from flow data and include the bounded box as a base
g <- ggplot(interpolated_flows,aes(x=X, y=Y),group=interpolated_flows$line_id,color=sgn)
map <- ggmap(seattle_map,base_layer = g)
map <- map + geom_path(size=as.numeric(ct)/100,alpha=0.4)+
scale_alpha_continuous(range = c(0.03, 0.3))+coord_fixed(ratio=1.3)+
scale_colour_gradient(high="red",low="blue")
png(filename='Seattle_flows_gradient.png')
print(map)
dev.off()
そして私は、添付された画像になってしまいます。私は、コードのプロット部分でさまざまなパラメータを使って遊んでいましたが、成功していないと、誰かが私を正しい方向に向けることができたら本当に感謝しています。
編集:
base <- ggplot(interpolated_flows,aes(x=X, y=Y))
map <- ggmap(seattle_map,base_layer = g)
map <- map+geom_path(aes(color=seg_num,size=as.numeric(count)))+
scale_size_continuous(name="Journey Count",range=c(0.05,0.4))+
scale_color_gradient(name="Journey Path",high="white",low="blue",breaks=c(1,10), labels=c('Origin','Destination'))+
coord_fixed(ratio=1.3)+scale_x_continuous("", breaks=NULL)+
scale_y_continuous("", breaks=NULL)
png(filename='Seattle_flows_gradient.png')
print(map)
dev.off()
これは私が今、このように見えるためにどの持ってプロットしたものです。私には2つの質問だけがあります - 1)誰もがバックグラウンドマップの解像度を改善する方法を知っていますか? get_map
機能のzoom
パラメータを変更しようとしましたが、それは役に立たないようです。 2)私がプロットした線は、非常に「白い」重く見える。グラデーションが均等に分散されているように見えるわけではありません。誰にも、これがどうしていいのか、どのように修正するのかというアイデアはありますか?
あなたは、元のデータフレームのうち、物事をリマップべきではありませんがお役に立てば幸いです、そしてそれはおそらく、なぜあなたの色マッピングISNです働いていない。 'interpolated_flows'を最初の' ggplot'引数として渡すと、 'interpolated_flows $ column'を使わずに名前で列を参照することができます。単に' column'を使うだけです。だから、それを修正し、グラデーションが正しくマッピングされるかどうかを確認してください – Mako212
@ Mako212ありがとうございました。今日はggplotの1日目です:D – soundofsilence