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

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

如何在圖表上漂亮地打印標簽

如何在圖表上漂亮地打印標簽

SMILET 2023-10-18 15:28:14
我有這個數據框:{'date': {0: Timestamp('2019-10-31 00:00:00'),  1: Timestamp('2019-11-30 00:00:00'),  2: Timestamp('2019-12-31 00:00:00'),  3: Timestamp('2020-01-31 00:00:00'),  4: Timestamp('2020-02-29 00:00:00'),  5: Timestamp('2020-03-31 00:00:00'),  6: Timestamp('2020-04-30 00:00:00'),  7: Timestamp('2020-05-31 00:00:00'),  8: Timestamp('2020-06-30 00:00:00'),  9: Timestamp('2020-07-31 00:00:00'),  10: Timestamp('2020-08-31 00:00:00')}, 'rate': {0: 100.0,  1: 99.04595078851037,  2: 101.09797599729458,  3: 102.29581878702609,  4: 104.72409825791058,  5: 109.45297539163114,  6: 118.24943699089361,  7: 119.65432196709045,  8: 117.82108184647535,  9: 118.6223497519237,  10: 120.32838345607335}}當我繪制它時,我的 x 軸被堵塞了如何打印它以便在 x 軸上獲得月份名稱和年份。例如 11 月 19 日。我用這個來繪制chart = sns.lineplot('date', 'rate', data=cdf,marker="o")如果我添加更多數據點,即使我更改大小,它也不會顯示它們:數據:{'date': {0: Timestamp('2019-01-31 00:00:00'),  1: Timestamp('2019-02-28 00:00:00'),  2: Timestamp('2019-03-31 00:00:00'),  3: Timestamp('2019-04-30 00:00:00'),  4: Timestamp('2019-05-31 00:00:00'),  5: Timestamp('2019-06-30 00:00:00'),  6: Timestamp('2019-07-31 00:00:00'),  7: Timestamp('2019-08-31 00:00:00'),  8: Timestamp('2019-09-30 00:00:00'),  9: Timestamp('2019-10-31 00:00:00'),  10: Timestamp('2019-11-30 00:00:00'),  11: Timestamp('2019-12-31 00:00:00'),  12: Timestamp('2020-01-31 00:00:00'),  13: Timestamp('2020-02-29 00:00:00'),  14: Timestamp('2020-03-31 00:00:00'),  15: Timestamp('2020-04-30 00:00:00'),  16: Timestamp('2020-05-31 00:00:00'),  17: Timestamp('2020-06-30 00:00:00'),  18: Timestamp('2020-07-31 00:00:00')}, 'rate': {0: 100.0,  1: 98.1580633244672,  2: 102.03029115707123,  3: 107.12429902683576,  4: 112.60187555657997,  5: 108.10306860500229,  6: 105.35473845070196,  7: 105.13286204895526,  8: 106.11760178061557,  9: 107.76819930852,
查看完整描述

1 回答

?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

from pandas import Timestamp

import pandas as pd

import seaborn as sns

import matplotlib.pyplot as plt



df = pd.DataFrame(

? ? ? ? ? ? ? ? ?{'date':

? ? ? ? ? ? ? ? ? ? ? ? ?{0: Timestamp('2019-10-31 00:00:00'),

? ? ? ? ? ? ? ? ? ? ? ? ? 1: Timestamp('2019-11-30 00:00:00'),

? ? ? ? ? ? ? ? ? ? ? ? ? 2: Timestamp('2019-12-31 00:00:00'),

? ? ? ? ? ? ? ? ? ? ? ? ? 3: Timestamp('2020-01-31 00:00:00'),

? ? ? ? ? ? ? ? ? ? ? ? ? 4: Timestamp('2020-02-29 00:00:00'),

? ? ? ? ? ? ? ? ? ? ? ? ? 5: Timestamp('2020-03-31 00:00:00'),

? ? ? ? ? ? ? ? ? ? ? ? ? 6: Timestamp('2020-04-30 00:00:00'),

? ? ? ? ? ? ? ? ? ? ? ? ? 7: Timestamp('2020-05-31 00:00:00'),

? ? ? ? ? ? ? ? ? ? ? ? ? 8: Timestamp('2020-06-30 00:00:00'),

? ? ? ? ? ? ? ? ? ? ? ? ? 9: Timestamp('2020-07-31 00:00:00'),

? ? ? ? ? ? ? ? ? ? ? ? ? 10: Timestamp('2020-08-31 00:00:00')},

? ? ? ? ? ? ? ? ?'rate':

? ? ? ? ? ? ? ? ? ? ? ? ?{0: 100.0,

? ? ? ? ? ? ? ? ? ? ? ? ? 1: 99.04595078851037,

? ? ? ? ? ? ? ? ? ? ? ? ? 2: 101.09797599729458,

? ? ? ? ? ? ? ? ? ? ? ? ? 3: 102.29581878702609,

? ? ? ? ? ? ? ? ? ? ? ? ? 4: 104.72409825791058,

? ? ? ? ? ? ? ? ? ? ? ? ? 5: 109.45297539163114,

? ? ? ? ? ? ? ? ? ? ? ? ? 6: 118.24943699089361,

? ? ? ? ? ? ? ? ? ? ? ? ? 7: 119.65432196709045,

? ? ? ? ? ? ? ? ? ? ? ? ? 8: 117.82108184647535,

? ? ? ? ? ? ? ? ? ? ? ? ? 9: 118.6223497519237,

? ? ? ? ? ? ? ? ? ? ? ? ? 10: 120.32838345607335}})



df['datelabel'] = df['date'].apply(lambda x: x.strftime('%b %d'))

chart = sns.lineplot('date', 'rate', data=df,marker="o")

chart.set_xticklabels(df.datelabel, rotation=45)

plt.show()

https://img1.sycdn.imooc.com/652f89720001dc7706390478.jpg

這是一種方法:構建一個 lambda 函數,將 strftime 與我們的目標表示應用于日期中的每條記錄。

%b - 月份作為區域設置的縮寫名稱。
%d - 月份中的第幾天,以零填充的十進制數字。

我們可以將其保存為一組參考標簽,通過 xticklabels 應用于圖表。

此外,您可以使用旋轉參數旋轉標簽。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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