亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何平滑熊貓/matplotlib 線圖?

如何平滑熊貓/matplotlib 線圖?

慕標琳琳 2022-10-25 15:28:31
我在許多商店有以下 df,每周花費:             shop1    shop2    shop3    shop4    shop5    shop6    shop7  \date_week                                                                  2          4328.85  5058.17  3028.68  2513.28  4204.10  1898.26  2209.75   3          5472.00  5085.59  3874.51  1951.60  2984.71  1416.40  1199.42   4          4665.53  4264.05  2781.70  2958.25  4593.46  2365.88  2079.73   5          5769.36  3460.79  3072.47  1866.19  3803.12  2166.84  1716.71   6          6267.00  4033.58  4053.70  2215.04  3991.31  2382.02  1974.92   7          5436.83  4402.83  3225.98  1761.87  4202.22  2430.71  3091.33   8          4850.43  4900.68  3176.00  3280.95  3483.53  4115.09  2594.01   9          6782.88  3800.03  3865.65  2221.43  4116.28  2638.28  2321.55   10         6248.18  4096.60  5186.52  3224.96  3614.24  2541.00  2708.36   11         4505.18  2889.33  2937.74  2418.34  5565.57  1570.55  1371.54   12         3115.26  1216.82  1759.49  2559.81  1403.61  1550.77   478.34   13         4561.82   827.16  4661.51  3197.90  1515.63  1688.57   247.25                shop8    shop9  date_week                    2          3578.81  3134.39  3          4625.10  2676.20  4          3417.16  3870.00  5          3980.78  3439.60  6          3899.42  4192.41  7          4190.60  3989.00  8          4786.40  3484.51  9          6433.02  3474.66  10         4414.19  3809.20  11         3590.10  3414.50  12         4297.57  2094.00  13         3963.27   871.25  如果我將這些繪制成線圖或“意大利面條圖”,效果很好。目標是查看過去三個月內 9 家商店的每周銷售額趨勢。但看起來有點亂:newgraph.plot()我查看了類似的問題,例如這個使用的問題,df.interpolate()但看起來我需要首先在其中缺少值。這個答案似乎需要一個時間序列。有沒有另一種方法來平滑線條?如果這些值不再完全準確并不重要,一些插值就可以了。我感興趣的只是過去幾周的趨勢。我也嘗試過logy=True讓plot()線條平靜一點的方法,但沒有幫助。
查看完整描述

1 回答

?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

您可以通過繪制過去幾周的回歸線來顯示趨勢,可能與實際數據分開,因為該圖已經如此擁擠。我會使用 seaborn,因為它具有方便的regplot()功能:


import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

sns.set()


df.plot(figsize=[12, 10], style='--')

plt.xlim(2, 18)


last4 = df[len(df)-4:]


plt.gca().set_prop_cycle(None)

for shop in df.columns:

    sns.regplot(last4.index + 4, shop, data=last4, ci=None, scatter=False)

plt.ylabel(None)

plt.xticks(list(df.index)+[14, 17], labels=list(df.index)+[10, 13]);

http://img1.sycdn.imooc.com//635790500001baf207190575.jpg

查看完整回答
反對 回復 2022-10-25
  • 1 回答
  • 0 關注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號