问题描述
我正在 R 中绘制一些自相关值:
import pandas as pd
sheets_names = ['R9_14062021','R9_02122020','R9_14062021','R9_28052021','R9_17052021','R9_03052021','R9_14042021','R9_24032020','R9_19032020','R9 30112020','R9_17112020','R7_27012021','LOGS R9 01032021','LOGS R7 SAT01032021','R7_30032020','G9_06032020','G5T_20012021','TNT_08122020','R7_SAT_24112020','G6T_12112020','R9 12102020']
logs = [' Msd','Provider Id','Terminal Type','chgtCh','accessRecordModule','playerPlay startOver','playerPlay PdL','playerPlay PVR','contentHasAds','pdlComplete','lirePdl','lireVod']
dfs_list = pd.read_excel('COMPIL LOGS INDICATEURS V14062021.xlsx',sheet_name = sheets_names )
writer = pd.ExcelWriter('pandas_multiple.xlsx',engine='xlsxwriter')
for sheet in dfs_list:
df = dfs_list[sheet]
df['Dt'] = pd.to_datetime(df['Dt']).dt.date
df1 = df.groupby(['Dt','webApp','mw'])[' Msd'].count()
for log in logs:
if log in df:
df1 = df.groupby(['Dt','mw'])[log].sum()
df1.to_update.get(sheet)
#df1.reset_index(inplace=True)
df1.to_excel(writer,sheet_name=sheet)
writer.save()
这是我的代码,这是我在 R 中得到的
但是,我想要像下图那样的东西,在那里我用红线将点连接到 0 处的水平线。
知道怎么做吗?
解决方法
可以用type = "h"
添加垂直线,然后单独添加点
plot(y=lag[2:N],x=1:(N-1),xlab="lag",ylab="Autocorrelation",ylim=c(-1,1),col="black",type = "h")
points(y=lag[2:N],pch=16,col="red",type = "p")
,
如果使用 ggplot 应该这样做:
plot_df = data.frame(x = 1:20,y = rnorm(20))
ggplot(plot_df,aes(x,y,ymax = y,ymin = 0)) +
geom_pointrange(color = "red") +
geom_hline(yintercept = min(plot_df$y),color = "blue") +
geom_hline(yintercept = max(plot_df$y),color = "blue")