iT邦幫忙

0

python matplotlib的x軸顯示 問題

https://drive.google.com/file/d/1g5RQOUwa92xYJRH_DFLVLvBQXkZzDq74/view?usp=sharing 檔案連結

想建立一個每月份的次數統計如下圖,下圖的程式碼也附上了

https://ithelp.ithome.com.tw/upload/images/20190717/20114865W0MefbkgGT.png
圖一

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from datetime import datetime, timedelta
df=pd.read_csv('./data/test.csv',engine='python',parse_dates=[1])
df['AcceptDate'] = pd.to_datetime(df['AcceptDate']) #将数据类型转换为日期类型

df = df.set_index('AcceptDate') # 将date设置为index
df_period=df.to_period('M')
g1=df.groupby(df_period.index.asfreq('M')).size()

a1=np.array(g1) 

df2=pd.read_csv('./data/test.csv',engine='python') 
g1=df2.drop_duplicates(subset= ['AcceptDate'],inplace = True)#重複值去掉
d1=df2['AcceptDate'].str.split("/").str.get(0).str.title()
d2=df2['AcceptDate'].str.split("/").str.get(1).str.title()
d3=d1+'-'+d2

l1 = np.array(d3)
l2 = []
for i in l1:
    if not i in l2:
        l2.append(i)

a2=np.array(l2) 

plt.xlim(0,11) 
plt.ylim(0,400,50) 
plt.title('2017-odorcase',fontsize = 15)
plt.xlabel('Month',fontsize = 15)
plt.ylabel('Case Number',fontsize = 15)
plt.xticks(rotation=45,fontsize = 10)# 第一个標籤旋轉角度
 

lines=plt.plot(a2,a1)
plt.setp(lines,marker = "o")
plt.tight_layout()
fig = plt.gcf()
plt.show()
fig.savefig('test1.png', dpi=100)

裡頭df2是想建立時間軸,獨立拉出年月份,請問可以從.size()裡調出它的標題嗎?
感覺df2的程式碼有點東拼西湊的(這程式碼是我打的)
https://ithelp.ithome.com.tw/upload/images/20190717/20114865hJeU3nOFee.png
圖二
--------------------------------分隔線---------------------------------------
後來也有嘗試設定月份的index拉出來,但因為是週期變成不能匯入圖表,請問是要換成其他格式嗎?
https://ithelp.ithome.com.tw/upload/images/20190717/20114865TkPr2WokC1.png
圖三

df = df.set_index('AcceptDate') # 将date设置为index
df_period=df.to_period('M')
g1=df.groupby(df_period.index).size()
y1=np.array(g1) 

d3=df_period.index
l1 = np.array(d3)
l2 = []
for i in l1:
    if not i in l2:
        l2.append(i)

y2=np.array(l2) 

如果可以希望兩個問題能夠幫我解答一下,最近爬得文有點不知道怎麼代入自己的情況中,感謝大家!

新增
兩個問題分別是
如何從.size()那條程式碼,取出它的標題(圖片為.size()各月份個數)?
圖片為取出的資料為週期,如要換成折線圖(圖一所示),要如何換成其他格式?

你在問什麼問題? 真的看不懂啊.... 很難理解耶. 你說你要那張圖,然後又說那張圖的code附上了. 那不就好了. 另外啊,不要說 代碼, 說 程式碼, 代碼不是很適當的翻譯.
你要先把問題整理好,邏輯正確,自然就好釐清.人怎樣想,程式碼就怎樣,電腦就怎樣跑.就是這樣簡單.
你說兩個問題,是哪兩個問題??? 你能明確的寫出來嗎?
z5m1n iT邦新手 5 級 ‧ 2019-07-17 17:55:15 檢舉
我有再編輯過了,原本提問的問題我只有用?做句尾,表達不清楚
上面圖一雖說已有做好,但我附上的程式碼裡,df3的設定有點像是拼湊的,主要是想詢問說有其他適用的方式嗎
我提出兩個問題是覺得這兩個皆可進一步改善我的程式碼,所以才希望說這兩個問題可以幫我做解答,造成不悅,在這跟您道歉。
matplotlib 發展的比較早. 你使用了panda 去處理csv. 要不要試試看ggplot.
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答