文章原創(chuàng),最近更新:2018-05-8
1.折線圖繪制
課程來源: python數(shù)據(jù)分析與機器學(xué)習(xí)實戰(zhàn)-唐宇迪
為了方便大家學(xué)習(xí),將練習(xí)所涉及的練習(xí)unrate.csv文件以百度網(wǎng)盤共享的方式分享出來.
鏈接: https://pan.baidu.com/s/1ixwJ8OLkVuO36E2f28ZtmQ 密碼: qcvh
1.原數(shù)據(jù)的展示
unrate.csv原數(shù)據(jù)在csv的展現(xiàn):
原數(shù)據(jù)是存在兩列,一列是DATE,一列是VALUE,VALUE指的是從1948年到2016年的失業(yè)率及還未就業(yè)的人數(shù)占總?cè)丝诘陌俜种畮?
2.畫折線圖
根據(jù)1948年1-12個月數(shù)據(jù)情況用折線圖畫出來.看一下走勢是怎么樣的?
首先看一下原數(shù)據(jù)的日期都是以1948/1/1的格式,這樣的格式看起來有點不太爽快,因此用to_datetime函數(shù)對日期進(jìn)行類型轉(zhuǎn)換,將/轉(zhuǎn)化成標(biāo)準(zhǔn)的時間格式-
拓外:
利用 pandas 的to_datetime 方法,把 "date" 列的字符類型數(shù)據(jù)解析成 datetime 對象尤勋。
import pandas as pd
unrate=pd.read_csv("unrate.csv")#這里得到unrate數(shù)據(jù)
unrate["DATE"]=pd.to_datetime(unrate["DATE"])
unrate.head(12)
Out[5]:
DATE VALUE
0 1948-01-01 3.4
1 1948-02-01 3.8
2 1948-03-01 4.0
3 1948-04-01 3.9
4 1948-05-01 3.5
5 1948-06-01 3.6
6 1948-07-01 3.6
7 1948-08-01 3.9
8 1948-09-01 3.8
9 1948-10-01 3.7
10 1948-11-01 3.8
11 1948-12-01 4.0
將matplot這個庫導(dǎo)入進(jìn)來
import matplotlib.pyplot as plt
下面首先了解這個庫:
- plot()提供曲線與標(biāo)志"兩種"類型圖形(重要)洞辣。下面以簡單語法為例進(jìn)行講解黍翎。
plot(x,y,’cs’,label=’testin‘)#其中x表示X軸數(shù)據(jù);y表示Y軸數(shù)據(jù)(如Y值沒有輸入拥坛,X軸坐標(biāo)為自動分配删铃,x值將會作為Y軸數(shù)據(jù));c為顏色定義字符串秕岛;s為圖形定義字符串,label為圖內(nèi)標(biāo)簽误证。
以上參數(shù)中瓣蛀,已對圖形的形狀,顏色以及標(biāo)簽進(jìn)行了 設(shè)定雷厂,一副完整數(shù)據(jù)圖中仍需要有標(biāo)題,刻度叠殷,刻度標(biāo)簽等設(shè)定改鲫。
除了以上設(shè)置參數(shù)外,還有例如:曲線與標(biāo)志大小林束,填充顏色等等更多控制參數(shù)像棘,請參考:http://matplotlib.org/2.0.0/api/lines_api.html#matplotlib.lines.Line2D
- plt.show(),這個就是把圖像顯示出來
對plt.plot以及plt.show進(jìn)行簡單的運用,如下
import matplotlib.pyplot as plt
plt.plot()
plt.show()
顯示的結(jié)果:
查看結(jié)果可以知道,首先畫出來是一個有x,y軸坐標(biāo)的圖形,因數(shù)據(jù)是空的,所以對應(yīng)的圖形是空的.
接下來在空白的圖形中加一些內(nèi)容,如下:
plt.plot(first_twelve["DATE"],first_twelve["VALUE"])
plt.show()
顯示的結(jié)果如下:
通過結(jié)果可以看出,顯示的結(jié)果x軸上的數(shù)據(jù)-日期,有點長.作為橫軸是否有點不太合適?有點難看,能不能稍微看起來更好看點呢?日期都是橫著寫,并且有些日期因為寫不下就少些了,能不能改成縱著寫或者斜著寫呢?
答案是可以的.可以用plt.xticks函數(shù)
首先對 xticks于ytick進(jìn)行了解:
- xticks于yticks:
xticks于yticks參數(shù)可以對軸刻度進(jìn)行設(shè)置壶冒,可以將現(xiàn)有刻度進(jìn)行更改缕题,示例語法:pyplot.xticks(x,xr,rotation=30)# x 代表現(xiàn)有的刻度,xr代表將改成的刻度胖腾,rotation代表將刻度逆時針旋轉(zhuǎn)多少度烟零。注意:x與xr 都是必須多于1元素的集合瘪松,list與tuple都可以。兩者元素可以不相等锨阿,但具體顯示多少取決于兩者的交集宵睦。可以簡單理解為墅诡,前者決定畫多個刻度壳嚎,后者決定幾個刻度有標(biāo)上值
看看圖像x軸的日期斜著寫,展示的結(jié)果:
plt.plot(first_twelve['DATE'], first_twelve['VALUE'])
plt.xticks(rotation=45)
plt.show()
輸出的結(jié)果如下:
如果將圖像x軸的日期縱著寫,又是怎么樣的?并且怎么將x軸,y軸加標(biāo)簽名呢?如果加上標(biāo)題又是怎么樣呢?
答案是可以的.可以用pyplot.title/plt.xlabel/plt.ylabel函數(shù).
首先對 以上3個函數(shù)進(jìn)行了解:
pyplot.title(s)
參數(shù)可添加標(biāo)題,s表示字符串內(nèi)容末早,使用中應(yīng)用引號如:’s‘烟馅。例如,plt.title('Histogram of IQ')xlabel與ylabel
xlabel與ylabel是X與Y軸添加標(biāo)簽名,幫助閱讀圖表更能清晰理解然磷。例如,plt.xlabel('Smarts')郑趁,plt.ylabel('Probability') #設(shè)置 x 軸和 y 軸的文字
看看圖像x軸的標(biāo)簽縱著寫,添加x,y軸標(biāo)簽名,顯示圖片的標(biāo)題,如下:
plt.plot(first_twelve["DATE"],first_twelve["VALUE"])
plt.xticks(rotation=90)
plt.xlabel('Month')
plt.ylabel('Unemployment Rate')
plt.title('Monthly Unemployment Trends, 1948')
plt.show()
輸出的結(jié)果如下: