Подведем итоги всех критических шагов для решения вашего вопроса.
1) Вы должны манипулировать форматом даты для правильного построения графика ggplot.
2) Поскольку ваши значения ETH_price и транзакция_объема не находятся в одном масштабе, для построения графикаих на одном графике, вы должны использовать трюк, описанный @ r2evans в этом посте: две оси Y с разными масштабами для двух наборов данных в ggplot2 [duplicate] .
Итак,ваш код должен выглядеть примерно так:
# Here I re-created a small part of your dataset here just for the example
Date.UTC. = c("03.03.2017","04.03.2017","05.03.2017","06.03.2017","07.03.2017","08.03.2017")
Value = c(64294,58756,57031,57020,62589,55386)
transaction_volume = data.frame(Date.UTC.,Value)
Value = c(19.54,19.45,20.45,22.67,23.34,21.89)
ETH_price = data.frame(Date.UTC.,Value)
# Managing Date format
ETH_price$Date.UTC. = as.Date(ETH_price$Date.UTC., format = "%m.%d.%Y")
transaction_volume$Date.UTC. = as.Date(transaction_volume$Date.UTC., format = "%m.%d.%Y")
str(ETH_price) # to check the correct format of your dataset
str(transaction_volume) # to check the correct format of your dataset
# Merging dataset
ETH_price$z = "ETH_price"
transaction_volume$z = "transaction_volume"
# Defining the scale factor (you can adapt this part according your preferences for plotting)
scale_factor = mean(transaction_volume$Value / ETH_price$Value)
df_temp = within(transaction_volume, {Value = Value / scale_factor})
df = rbind(ETH_price,df_temp)
df
# Plotting both datasets
library(ggplot2)
mycolors = c("ETH_price" = "blue", "transaction_volume" = "red")
ggplot(df, aes(x = Date.UTC., y = Value, group = z, color = z)) +
geom_path() +
geom_line() +
scale_y_continuous(name = "ETH_price", sec.axis = sec_axis(~scale_factor*., name = "transaction_volume")) +
scale_color_manual(name = "Datasets", values = mycolors) +
theme(
axis.title.y = element_text(color = mycolors["ETH_price"]),
axis.text.y = element_text(color = mycolors["ETH_price"]),
axis.title.y.right = element_text(color = mycolors["transaction_volume"]),
axis.text.y.right = element_text(color = mycolors["transaction_volume"])
)
Итак, вы должны получить следующий график:
Итак, я думаю, что это должно решитьваш вопрос;)