1.代碼1:
<code>from pandas import Series,DataFrame
from numpy.random import randn
import numpy as np
import matplotlib.pyplot as plt
#隨機產生的數值,5組10行,每次打開圖形都會變,所以沒什麼意義。
df = DataFrame(abs(randn(10,5)),columns=['A','B','C','D','E'],index = np.arange(0,100,10))
df.plot(kind='bar')
plt.show()/<code>
2.圖1
3.代碼2:
<code>from pandas import Series,DataFrame
#from numpy.random import randn #這一行就不需要了
import numpy as np
import matplotlib.pyplot as plt
#修改一下,自己隨意自定義一份5組10行的數據
dataz=[
[11,22,33,44,55],
[91,81,71,61,51],
[50,60,90,70,80],
[41,45,49,44,42],
[29,92,47,78,87],
[54,56,87,90,34],
[65,42,24,45,97],
[34,76,98,17,28],
[46,91,43,87,48],
[98,78,55,67,83],
]
#注意data=dataz,其他不變,增加實際可用性
df = DataFrame(data=dataz,columns=['A','B','C','D','E'],index = np.arange(0,100,10))
df.plot(kind='bar')
plt.show()/<code>
4.圖2
5.還是感覺有點麻煩,萬一自己有一份數據5組10行,要自己一行一行輸入,太麻煩了。
如果是一份excel數據表格有5組10行,那麼用python直接讀取,並作圖多好呀。
6.代碼3:
<code>#from pandas import Series,DataFrame
#pandas裡面series是一維數組,dataframe是二維數組
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import xlrd #讀取excel
#df=pd.read_excel('dataz.xls') #假設有一個dataz.xlsx文件,在根目錄下,沒說表單那就是默認的sheet1
#如果一份excel的xls或者xlsx中只有sheet1有表格,那就不需要特別注意,默認即可
#如果一份excel中有表d1、d2和d3,那麼輸出d1需要如下設置
df=pd.read_excel('dataz.xls',sheet_name='d1')
df.columns=['A','B','C','D','E']
df.plot(kind='bar')
plt.show()/<code>
7.圖3
8.注意excel數據格式,圖4
9.注意上述代碼所到處模塊的不同,實用性很強。
10.在同一個excel中去第二張sheet的數據作圖,中文
10.1 圖6
10.2 代碼4:
<code>import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import xlrd #讀取excel
from matplotlib.font_manager import FontProperties #導入字體管理器
font = FontProperties(fname='hwxk.ttf') #定義字體,以及字體和默認根目錄hwxk=華文行楷
#df=pd.read_excel('dataz.xls') #假設有一個dataz.xlsx文件,在根目錄下,沒說表單那就是默認的sheet1
#如果一份excel的xls或者xlsx中只有sheet1有表格,那就不需要特別注意,默認即可
#如果一份excel中有表d1、d2和d3,那麼輸出d2需要如下設置
df=pd.read_excel('dataz.xls',sheet_name='d2')
#附加知識
#data=df.head()#默認讀取前5行的數據
#dataz=df.head(10)#默認讀取前10行的數據
#print("讀取指定行的數據:\\n{0}".format(data))
#df.columns=['語文','數學','科學','英語','體育']
df.plot(kind='bar')
plt.title(u'成績單',fontproperties=font,size=30)
#注意legend只能放在df.plot下面,否則出現兩個圖,且中文不能顯示
#注意如果是英文,那麼下面的plt.legend不需要,就需要df.columns就可以了
#注意legend裡面的是prop=font,和上面的plt.title中不一樣,注意這一點
#注意loc='best'就是最佳位置的意思
plt.legend((u'語文',u'數學',u'科學',u'英語',u'體育'),loc='best',prop = font)
plt.show()/<code>
10.3 圖5