matplotlib文檔,[數據]matplotlib總結

 2023-10-21 阅读 26 评论 0

摘要:這里權當一個matplotlib的用法小結,主要用于記錄,以防忘記。 需要安裝一下Anaconda,這里推薦清華大學的鏡像:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ matplotlib能將數據進行可視化,更直觀地呈現。使數據更加客觀,更

這里權當一個matplotlib的用法小結,主要用于記錄,以防忘記。

需要安裝一下Anaconda,這里推薦清華大學的鏡像:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

matplotlib能將數據進行可視化,更直觀地呈現。使數據更加客觀,更具說服力。

1.?折線圖

from matplotlib import pyplot as plt# E:\Anaconda3\Library\bin添加到環境變量
x = range(2, 26, 2)
y = [15, 13, 14.5, 17, 20, 25, 26, 26, 24, 22, 18, 15]# 設置圖片大小,寬20,高8,像素80
plt.figure(figsize=(20, 8), dpi=80)# 設置x軸的刻度
_xtick_labels = [i / 2 for i in range(4, 49)]
plt.xticks(_xtick_labels[::3]) #步長取3

plt.yticks(range(min(y), max(y) + 1))# 繪圖
plt.plot(x, y)# 保存,svg矢量圖格式,放大不會有鋸齒
plt.savefig('./t1.svg')# 展示圖形
plt.show()

2.?設置中文

matplotlib文檔。

import randomfrom matplotlib import pyplot as plt, font_manager#設置字體(這樣可以顯示中文字體)
my_font = font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc', size=12)x = range(120)
y = [random.randint(20, 35) for i in range(120)]plt.figure(figsize=(20, 8), dpi=80)# 調整x軸的刻度
# _x = list(x)[::10]
# _xtick_labels = ['hello,{}'.format(i) for i in _x]
# plt.xticks(_x, _xtick_labels)

_x = list(x)
_xtick_labels = ['10點{}分'.format(i) for i in range(60)]
_xtick_labels += ['11點{}分'.format(i) for i in range(60)]
#rotation是逆時針旋轉角度
# plt.xticks(_x[::3], _xtick_labels[::3], rotation = 45, fontproperties = 'SimHei') #這樣是可以的
plt.xticks(_x[::3], _xtick_labels[::3], rotation = 45, fontproperties = my_font)plt.yticks(range(min(y), max(y) + 1))#添加描述信息
plt.xlabel('時間', fontproperties = my_font)
plt.ylabel('溫度 單位(℃)', fontproperties = my_font)
plt.title('10點到12點每分鐘的氣溫變化情況', fontproperties = my_font)
#網格
#alpha是透明度,0最透明,1最明顯
plt.grid(alpha = 0.3)plt.plot(x, y)
plt.show()

3. 多個折線圖

圖例的位置loc:

from matplotlib import pyplot as plt, font_managerplt.figure(figsize=(20, 8), dpi=80)
x = range(11, 31)
y1 = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
y2 = [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\simsun.ttc', size=12)plt.xticks(x, ['{}歲'.format(i) for i in list(x)], fontproperties = my_font)
plt.yticks([i / 2 for i in range(2 * min(y1), 2 * max(y1) + 1)])#描述信息
plt.xlabel('年齡', fontproperties = my_font)
plt.ylabel('數量', fontproperties = my_font)
plt.title('統計個數', fontproperties = my_font, size = 18)#網格
#alpha是透明度
#linestyle -是實線 :是點虛線 --是線虛線 -.是點線虛線
plt.grid(alpha = 0.9, linestyle = ':')#兩個都畫
plt.plot(x, y1, label = '陳馳', color = 'red', linestyle = '--', linewidth = 3)
plt.plot(x, y2, label = '石澤濤', color = 'blue', linestyle = '-.', linewidth = 1)#添加圖例
#這里顯示中文需要注意一下
plt.legend(prop=my_font, loc=2)plt.show()

4.?散點圖

from matplotlib import pyplot as plt, font_managery_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,13,6]x_3 = range(1, 32)
x_10 = range(51, 82)plt.figure(figsize=(20, 8), dpi=80)#設置字體(這樣可以顯示中文字體)
my_font = font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc', size=12)#畫散點圖
plt.scatter(x_3, y_3, label = '3月份')
plt.scatter(x_10, y_10, label = '10月份')_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.yticks(range(min(y_3 + y_10), max(y_3 + y_10) + 1))#添加圖例
plt.legend(prop = my_font, loc = 2)#設置描述信息
plt.xlabel('時間', fontproperties = my_font)
plt.ylabel('溫度(℃)', fontproperties = my_font)
plt.title('統計月份溫度', fontproperties = my_font, size = 19)plt.grid(alpha = 0.4, linestyle = ':')plt.show()

5.?柱狀圖

from matplotlib import pyplot as plt, font_managera = ["戰狼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]#設置字體(這樣可以顯示中文字體)
my_font = font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc', size=12)plt.figure(figsize=(20, 8), dpi=80)plt.yticks(range(len(a)), a, fontproperties = my_font)
plt.xticks(list(range(int(min(b)), int(max(b)) + 1))[::2])plt.ylabel('電影', fontproperties = my_font)
plt.xlabel('票房(億元)', fontproperties = my_font)
plt.title('2017電影票房統計', fontproperties = my_font, size = 19)#width是條形圖寬度
#bar是豎著的(width屬性),barh是橫著的(height屬性)
plt.barh(range(len(a)), b, height = 0.3, color = 'orange')plt.grid(alpha = 0.3, linestyle = ':')plt.show()

matplotlib數據量大怎么繪圖?

6.?直方圖

from matplotlib import pyplot as plt, font_manager#設置字體(這樣可以顯示中文字體)
my_font = font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc', size=12)a = ["猩球崛起3:終極之戰","敦刻爾克","蜘蛛俠:英雄歸來","戰狼2"]
b_16 = [15746,312,4497,319]
b_15 = [12357,156,2045,168]
b_14 = [2358,399,2358,362]plt.figure(figsize=(20, 8), dpi=80)_x = list(range(len(a)))
_bar_width = 0.1plt.xticks([i + _bar_width for i in _x], a, fontproperties = my_font)plt.xlabel('電影', fontproperties = my_font)
plt.ylabel('票房', fontproperties = my_font)
plt.title('不同天的電影票房', fontproperties = my_font, size = 20)plt.bar(_x, b_16, width = _bar_width, label = '9月16日')
plt.bar([i + _bar_width for i in _x], b_15, width = _bar_width, label = '9月15日')
plt.bar([i + _bar_width * 2 for i in _x], b_14, width = _bar_width, label = '9月14日')plt.legend(prop = my_font, loc = 0)plt.show()

?

要想進一步學習,參考:

https://matplotlib.org/gallery/index.html

或者選用:

https://plot.ly/python/

matplotlib中文教程、轉載于:https://www.cnblogs.com/DarrenChan/p/10321432.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/154664.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息