from matplotlib import pyplot as plt # 導入pyplotfig = plt.figure(figsize=(20,8),dpi=80)# figure 圖形圖標的意思,在這里指我們畫的圖# 傳入figsize給圖片設置長高# 傳入dpi參數,給圖片增加像素x =range(2,26,2)# 時間
y =[15,13,14.5,17,20,25,26,26,27,22,18,15]# 溫度plt.plot(x,y)# 傳入x和y,通過plot繪制出折線圖
plt.xticks(x)# 設置x軸刻度#plt.savefig("氣溫.png") # 保存圖片,傳入.svg這種矢量圖格式,放大不會有鋸齒plt.show()# 展示圖形from matplotlib import pyplot as plt # 導入pyplotfig = plt.figure(figsize=(20,8),dpi=80)# figure 圖形圖標的意思,在這里指我們畫的圖# 傳入figsize給圖片設置長高# 傳入dpi參數,給圖片增加像素x =range(2,26,2)# 時間
y =[15,13,14.5,17,20,25,26,26,27,22,18,15]# 溫度
plt.plot(x,y)# 傳入x和y,通過plot繪制出折線圖# 調整x軸刻度
scale =[i/2for i inrange(4,49)]#plt.xticks()
plt.xticks(scale[::3])# 當刻度太密集的時候可使用列表的步長來進行調整,matplotlib會自動做對應# 調整y軸刻度
plt.yticks(range(min(y),max(y)+1))#plt.savefig("氣溫.png") # 保存圖片,傳入.svg這種矢量圖格式,放大不會有鋸齒plt.show()# 展示圖形
案例二:隨機生成一個氣溫度數,然后繪制10點到12點每一分鐘的氣溫。
from matplotlib import pyplot as plt # 導入pyplotimport random #導入 random隨機數模塊fig = plt.figure(figsize=(20,8),dpi=80)#設置繪制圖片的大小以及像素
x =range(0,120)# 時間
y =[random.randint(20,35)for i inrange(120)]# 生成隨機溫度
plt.plot(x,y)# 調整x軸刻度
x_time =["10點{}分".format(i)for i inrange(60)]
x_time +=["11點{}分".format(i)for i inrange(60)]# 取步長,數字和字符串一一對應,數據長度一樣
plt.xticks(list(x)[::3],x_time[::3],rotation=90)#rotation函數旋轉字符度數)
plt.show()from matplotlib import pyplot as plt # 導入pyplotimport random #導入 random隨機數模塊from matplotlib import font_managermy_font = font_manager.FontProperties(fname='C:/Windows/Fonts/msyhl.ttc')# 設置中文實例解決亂碼fig = plt.figure(figsize=(20,8),dpi=80)#設置繪制圖片的大小以及像素
x =range(0,120)# 時間
y =[random.randint(20,35)for i inrange(120)]# 生成隨機溫度
plt.plot(x,y)# 調整x軸刻度
x_time =["10點{}分".format(i)for i inrange(60)]
x_time +=["11點{}分".format(i)for i inrange(60)]# 取步長,數字和字符串一一對應,數據長度一樣
plt.xticks(list(x)[::3],x_time[::3],rotation=270,fontproperties=my_font)#rotation函數旋轉字符度數
plt.show()from matplotlib import pyplot as plt # 導入pyplotimport random #導入 random隨機數模塊from matplotlib import font_managermy_font = font_manager.FontProperties(fname='C:/Windows/Fonts/msyhl.ttc')# 設置中文實例解決亂碼fig = plt.figure(figsize=(20,8),dpi=80)#設置繪制圖片的大小以及像素
x =range(0,120)# 時間
y =[random.randint(20,35)for i inrange(120)]# 生成隨機溫度
plt.plot(x,y)# 調整x軸刻度
x_time =["10點{}分".format(i)for i inrange(60)]
x_time +=["11點{}分".format(i)for i inrange(60)]# 取步長,數字和字符串一一對應,數據長度一樣
plt.xticks(list(x)[::3],x_time[::3],rotation=270,fontproperties=my_font)#rotation函數旋轉字符度數# 添加描述信息
plt.xlabel("時間",fontproperties=my_font)
plt.ylabel("溫度 單位(℃)",fontproperties=my_font)
plt.title("10點到12點每分鐘的氣溫變化情況",fontproperties=my_font)
plt.show()
案例三:假設小明是30歲,統計出小明從11歲到30歲每年交往的女朋友數量如列表a,請繪制出該數據的折線圖。 a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1] 要求: y軸表示交往女朋友個數 x軸表示其歲數如11歲,12歲,13歲等
from matplotlib import pyplot as plt # 導入pyplotfrom matplotlib import font_managerx =range(11,31)
y =[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
my_font = font_manager.FontProperties(fname='C:/Windows/Fonts/msyhl.ttc')
fig = plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
plt.yticks(range(min(y),max(y)+1))
xiaoming =["{}歲".format(i)for i inrange(11,31)]
plt.xticks(list(x),xiaoming,fontproperties=my_font)
plt.xlabel("小明年齡",fontproperties=my_font)
plt.ylabel("女朋友個數",fontproperties=my_font)
plt.title("小明11歲到30歲女朋友個數詳情",fontproperties=my_font)
plt.show()from matplotlib import pyplot as plt # 導入pyplotfrom matplotlib import font_managerx =range(11,31)
y =[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
my_font = font_manager.FontProperties(fname='C:/Windows/Fonts/msyhl.ttc')
fig = plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
plt.yticks(range(0,9))
xiaoming =["{}歲".format(i)for i inrange(11,31)]
plt.xticks(list(x),xiaoming,fontproperties=my_font)
plt.xlabel("小明年齡",fontproperties=my_font)
plt.ylabel("女朋友個數",fontproperties=my_font)
plt.title("小明11歲到30歲女朋友個數詳情",fontproperties=my_font)# 繪制網格
plt.grid(alpha=0.4)#alpha 設置網格深度
plt.show()
案例四:假設小a和小b 都是30歲,請在同一個圖中繪制出a和b從11歲到30歲個交往的女朋友個數的折線圖。 a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1] b = [1,0,3,1,2,2,3,3,2,1,2,1,1,1,1,1,1,1,1,1]
from matplotlib import pyplot as plt # 導入pyplotfrom matplotlib import font_managerx =range(11,31)
a =[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
b =[1,0,3,1,2,2,3,3,2,1,2,1,1,1,1,1,1,1,1,1]my_font = font_manager.FontProperties(fname='C:/Windows/Fonts/msyhl.ttc')
fig = plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,a)
plt.plot(x,b)
plt.yticks(range(0,9))
xiaoming =["{}歲".format(i)for i inrange(11,31)]
plt.xticks(list(x),xiaoming,fontproperties=my_font)
plt.xlabel("年齡",fontproperties=my_font)
plt.ylabel("女朋友個數",fontproperties=my_font)
plt.title("a和b從11歲到30歲女朋友個數隊比詳情",fontproperties=my_font)# 繪制網格
plt.grid(alpha=0.4)#alpha 設置網格深度
plt.show()
圖例位置,線條顏色,線條風格
from matplotlib import pyplot as plt # 導入pyplotfrom matplotlib import font_managerx =range(11,31)
a =[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
b =[1,0,3,1,2,2,3,3,2,1,2,1,1,1,1,1,1,1,1,1]my_font = font_manager.FontProperties(fname='C:/Windows/Fonts/msyhl.ttc')
fig = plt.figure(figsize=(20,8),dpi=80)plt.plot(x,a,label="小a",color="orange",linestyle="--")# color 參數表示折線的顏色,linestyle參數表示線條的風格
plt.plot(x,b,label="小b",color="#FFB6C1")plt.yticks(range(0,9))
xiaoming =["{}歲".format(i)for i inrange(11,31)]
plt.xticks(list(x),xiaoming,fontproperties=my_font)
plt.xlabel("年齡",fontproperties=my_font)
plt.ylabel("女朋友個數",fontproperties=my_font)
plt.title("a和b從11歲到30歲女朋友個數隊比詳情",fontproperties=my_font)# 繪制網格
plt.grid(alpha=0.4)#alpha 設置網格深度plt.legend(prop=my_font,loc="upper left")# 添加圖例,loc顯示圖列位置
plt.show()
matplotlib-散點圖學習
案例一: 假設通過爬蟲獲取到了北京2020年3,10月份每天白天的最高氣溫(分別位于列表a,b),那么此時如果尋找出氣溫和隨時間(天)變化得某種規律呢? a = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23] b = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,16,6]
from matplotlib import pyplot as plt
from matplotlib import font_managermy_font = font_manager.FontProperties(fname='C:/Windows/Fonts/msyhl.ttc')# 設置字體
y_3 =[11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]
y_10 =[26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,16,6]
fig = plt.figure(figsize=(20,8),dpi=80)# 設置繪圖大小
x_3 =range(1,32)
x_10 =range(51,82)# 使用scatter方法繪制散點圖,和之前繪制折線圖的唯一區別
plt.scatter(x_3,y_3,label="3月份")
plt.scatter(x_10,y_10,label="10月份")#調整x軸的刻度
_x =list(x_3)+list(x_10)
_xtick_labels =["3月{}日".format(i)for i in x_3]
_xtick_labels +=["10月{}日".format(i-50)for i in x_10]
plt.xticks(_x[::3],_xtick_labels[::3],fontproperties=my_font,rotation =45)plt.legend(prop=my_font,loc="upper left")# 添加圖例,loc顯示圖列位置#添加描述信息
plt.xlabel("時間",fontproperties=my_font)
plt.ylabel("溫度",fontproperties=my_font)
plt.title("北京2020年3,10月份每天白天的最高氣溫對比",fontproperties=my_font)
plt.show()
繪制條形圖 案例一:假設獲取到2017年內地電影(列表a)和電影票房數據(列表b),那么如何更加直觀展示該數據? a = [“戰狼2”,“速度與激情8”,“功夫瑜伽”,“西游伏妖篇”,“變形金剛5:最后的騎士”,“摔跤吧!爸爸”,“加勒比海盜5:死無對證”,“金剛:骷髏島”,“極限特工:終極回歸”,“生化危機6:終章”,“乘風破浪”,“神偷奶爸3”,“智取威虎山”,“大鬧天竺”,“金剛狼3:殊死一戰”,“蜘蛛俠:英雄歸來”,“悟空傳”,“銀河護衛隊2”,“情圣”,“新木乃伊”] b = [56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23] 單位:億
from matplotlib import pyplot as plt
from matplotlib import font_manager
fig = plt.figure(figsize=(20,8),dpi=80)# 設置繪圖大小
my_font = font_manager.FontProperties(fname='C:/Windows/Fonts/msyhl.ttc')# 設置字體a =["戰狼2","速度與激情8","功夫瑜伽","西游伏妖篇","變形金剛5\n:最后的騎士","摔跤吧!爸爸","加勒比海盜5\n:死無對證","金剛:骷髏島","極限特工\n:終極回歸","生化危機6\n:終章","乘風破浪","神偷奶爸3","智取威虎山","大鬧天竺","金剛狼3\n:殊死一戰","蜘蛛俠\n:英雄歸來","悟空傳","銀河護衛隊2","情圣","新木乃伊"]
b =[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]#單位:億plt.bar(range(len(a)),b,width=0.3)#width設置線條寬度
plt.xticks(range(len(a)),a,fontproperties=my_font,rotation=45)plt.xlabel("電影名稱",fontproperties=my_font)
plt.ylabel("票房",fontproperties=my_font)
plt.title("2017年內地電影和電影票房數據",fontproperties=my_font)
plt.show()plt.show()from matplotlib import pyplot as plt
from matplotlib import font_manager
fig = plt.figure(figsize=(20,8),dpi=80)# 設置繪圖大小
my_font = font_manager.FontProperties(fname='C:/Windows/Fonts/msyhl.ttc')# 設置字體a =["戰狼2","速度與激情8","功夫瑜伽","西游伏妖篇","變形金剛5\n:最后的騎士","摔跤吧!爸爸","加勒比海盜5\n:死無對證","金剛:骷髏島","極限特工\n:終極回歸","生化危機6\n:終章","乘風破浪","神偷奶爸3","智取威虎山","大鬧天竺","金剛狼3\n:殊死一戰","蜘蛛俠\n:英雄歸來","悟空傳","銀河護衛隊2","情圣","新木乃伊"]
b =[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]#單位:億plt.barh(range(len(a)),b,height=0.3,color="#33FF00")#height設置線條寬度
plt.yticks(range(len(a)),a,fontproperties=my_font)plt.xlabel("票房(億)",fontproperties=my_font)
plt.ylabel("電影名稱",fontproperties=my_font)
plt.title("2017年內地電影和電影票房數據",fontproperties=my_font)
plt.grid(alpha=0.3)#繪制網格
plt.show()