<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
matplotlib官方檔案:https://matplotlib.org/stable/users/index.html
matplotlib是一個繪相簿,它可以建立常用的統計圖,包括條形圖、箱型圖、折線圖、散點圖、餅圖和直方圖。
import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties font = FontProperties(fname=r'c:windowsfontssimsun.ttc') # 修改背景為條紋 plt.style.use('ggplot') classes = ['3班', '4班', '5班', '6班'] classes_index = range(len(classes)) print(list(classes_index)) # [0, 1, 2, 3] student_amounts = [66, 55, 45, 70] # 畫布設定 fig = plt.figure() # 1,1,1表示一張畫布切割成1行1列共一張圖的第1個;2,2,1表示一張畫布切割成2行2列共4張圖的第一個(左上角) ax1 = fig.add_subplot(1, 1, 1) ax1.bar(classes_index, student_amounts, align='center', color='darkblue') ax1.xaxis.set_ticks_position('bottom') ax1.yaxis.set_ticks_position('left') plt.xticks(classes_index, classes, rotation=0, fontsize=13, fontproperties=font) plt.xlabel('班級', fontproperties=font, fontsize=15) plt.ylabel('學生人數', fontproperties=font, fontsize=15) plt.title('班級-學生人數', fontproperties=font, fontsize=20) # 儲存圖片,bbox_inches='tight'去掉圖形四周的空白 # plt.savefig('classes_students.png', dpi=400, bbox_inches='tight') plt.show()
import numpy as np import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties font = FontProperties(fname=r'c:windowsfontssimsun.ttc') # 修改背景為條紋 plt.style.use('ggplot') mu1, mu2, sigma = 50, 100, 10 # 構造均值為50的符合正態分佈的資料 x1 = mu1 + sigma * np.random.randn(10000) print(x1) # [59.00855949 43.16272141 48.77109774 ... 57.94645859 54.70312714 # 58.94125528] # 構造均值為100的符合正態分佈的資料 x2 = mu2 + sigma * np.random.randn(10000) print(x2) # [115.19915511 82.09208214 110.88092454 ... 95.0872103 104.21549068 # 133.36025251] fig = plt.figure() ax1 = fig.add_subplot(121) # bins=50表示每個變數的值分成50份,即會有50根柱子 ax1.hist(x1, bins=50, color='darkgreen') ax2 = fig.add_subplot(122) ax2.hist(x2, bins=50, color='orange') fig.suptitle('兩個正態分佈', fontproperties=font, fontweight='bold', fontsize=15) ax1.set_title('綠色的正態分佈', fontproperties=font) ax2.set_title('橙色的正態分佈', fontproperties=font) plt.show()
import numpy as np from numpy.random import randn import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties font = FontProperties(fname=r'c:windowsfontssimsun.ttc') # 修改背景為條紋 plt.style.use('ggplot') np.random.seed(1) # 使用numpy的累加和,保證資料取值範圍不會在(0,1)內波動 plot_data1 = randn(40).cumsum() print(plot_data1) # [ 1.62434536 1.01258895 0.4844172 -0.58855142 0.2768562 -2.02468249 # -0.27987073 -1.04107763 -0.72203853 -0.97140891 0.49069903 -1.56944168 # -1.89185888 -2.27591324 -1.1421438 -2.24203506 -2.41446327 -3.29232169 # -3.25010794 -2.66729273 -3.76791191 -2.6231882 -1.72159748 -1.21910314 # -0.31824719 -1.00197505 -1.12486527 -2.06063471 -2.32852279 -1.79816732 # -2.48982807 -2.8865816 -3.5737543 -4.41895994 -5.09020607 -5.10287067 # -6.22018102 -5.98576532 -4.32596314 -3.58391898] plot_data2 = randn(40).cumsum() plot_data3 = randn(40).cumsum() plot_data4 = randn(40).cumsum() plt.plot(plot_data1, marker='o', color='red', linestyle='-', label='紅實線') plt.plot(plot_data2, marker='x', color='orange', linestyle='--', label='橙虛線') plt.plot(plot_data3, marker='*', color='yellow', linestyle='-.', label='黃點線') plt.plot(plot_data4, marker='s', color='green', linestyle=':', label='綠點圖') # loc='best'給label自動選擇最好的位置 plt.legend(loc='best', prop=font) plt.show()
import numpy as np from numpy.random import randn import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties font = FontProperties(fname=r'c:windowsfontssimsun.ttc') # 修改背景為條紋 plt.style.use('ggplot') x = np.arange(1, 20, 1) print(x) # [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19] # 擬合一條水平散點線 np.random.seed(1) y_linear = x + 10 * np.random.randn(19) # print(y_linear) # [ 17.24345364 -4.11756414 -2.28171752 -6.72968622 13.65407629 # -17.01538697 24.44811764 0.38793099 12.19039096 7.50629625 # 25.62107937 -8.60140709 9.77582796 10.15945645 26.33769442 # 5.00108733 15.27571792 9.22141582 19.42213747] # 擬合一條x²的散點線 y_quad = x**2 + 10 * np.random.randn(19) print(y_quad) # [ 6.82815214 -7.00619177 20.4472371 25.01590721 30.02494339 # 45.00855949 42.16272141 62.77109774 71.64230566 97.3211192 # 126.30355467 137.08339248 165.03246473 189.128273 216.54794359 # 249.28753869 288.87335401 312.82689651 363.34415698] # s是散點大小 fig = plt.figure() ax1 = fig.add_subplot(121) plt.scatter(x, y_linear, s=30, color='r', label='藍點') plt.scatter(x, y_quad, s=100, color='b', label='紅點') ax2 = fig.add_subplot(122) plt.plot(x, y_linear, color='r') plt.plot(x, y_quad, color='b') # 限制x軸和y軸的範圍取值 plt.xlim(min(x) - 1, max(x) + 1) plt.ylim(min(y_quad) - 10, max(y_quad) + 10) fig.suptitle('散點圖+直線圖', fontproperties=font, fontsize=20) ax1.set_title('散點圖', fontproperties=font) ax1.legend(prop=font) ax2.set_title('直線圖', fontproperties=font) plt.show()
import numpy as np import matplotlib.pyplot as plt from pylab import mpl from matplotlib.font_manager import FontProperties font = FontProperties(fname=r'c:windowsfontssimsun.ttc') mpl.rcParams['font.sans-serif'] = ['SimHei'] fig, ax = plt.subplots(subplot_kw=dict(aspect="equal")) recipe = ['優', '良', '輕度汙染', '中度汙染', '重度汙染', '嚴重汙染', '缺'] data = [2, 49, 21, 9, 11, 6, 2] colors = ['lime', 'yellow', 'darkorange', 'red', 'purple', 'maroon', 'grey'] wedges, texts, texts2 = ax.pie(data, wedgeprops=dict(width=0.5), startangle=40, colors=colors, autopct='%1.0f%%', pctdistance=0.8) plt.setp(texts2, size=14, weight="bold") bbox_props = dict(boxstyle="square,pad=0.3", fc="w", ec="k", lw=0.72) kw = dict(xycoords='data', textcoords='data', arrowprops=dict(arrowstyle="->"), bbox=None, zorder=0, va="center") for i, p in enumerate(wedges): ang = (p.theta2 - p.theta1) / 2. + p.theta1 y = np.sin(np.deg2rad(ang)) x = np.cos(np.deg2rad(ang)) horizontalalignment = {-1: "right", 1: "left"}[int(np.sign(x))] connectionstyle = "angle,angleA=0,angleB={}".format(ang) kw["arrowprops"].update({"connectionstyle": connectionstyle}) ax.annotate(recipe[i], xy=(x, y), xytext=(1.25 * np.sign(x), 1.3 * y), size=16, horizontalalignment=horizontalalignment, fontproperties=font, **kw) ax.set_title("餅圖範例", fontproperties=font) plt.show() # plt.savefig('jiaopie2.png')
箱型圖:又稱為盒須圖、盒式圖、盒狀圖或箱線圖,是一種用作顯示一組資料分散情況資料的統計圖(在資料分析中常用在異常值檢測)
包含一組資料的:最大值、最小值、中位數、上四分位數(Q3)、下四分位數(Q1)、異常值
import numpy as np import matplotlib.pyplot as plt import pandas as pd from matplotlib.font_manager import FontProperties font = FontProperties(fname=r'c:windowsfontssimsun.ttc') df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E']) plt.figure(figsize=(10, 4)) # 建立圖表、資料 f = df.boxplot( sym='o', # 異常點形狀,參考marker vert=True, # 是否垂直 whis=1.5, # IQR,預設1.5,也可以設定區間比如[5,95],代表強制上下邊緣為資料95%和5%位置 patch_artist=True, # 上下四分位框內是否填充,True為填充 meanline=False, showmeans=True, # 是否有均值線及其形狀 showbox=True, # 是否顯示箱線 showcaps=True, # 是否顯示邊緣線 showfliers=True, # 是否顯示異常值 notch=False, # 中間箱體是否缺口 return_type='dict' # 返回型別為字典 ) plt.title('boxplot') for box in f['boxes']: box.set(color='b', linewidth=1) # 箱體邊框顏色 box.set(facecolor='b', alpha=0.5) # 箱體內部填充顏色 for whisker in f['whiskers']: whisker.set(color='k', linewidth=0.5, linestyle='-') for cap in f['caps']: cap.set(color='gray', linewidth=2) for median in f['medians']: median.set(color='DarkBlue', linewidth=2) for flier in f['fliers']: flier.set(marker='o', color='y', alpha=0.5) # boxes, 箱線 # medians, 中位值的橫線, # whiskers, 從box到error bar之間的豎線. # fliers, 異常值 # caps, error bar橫線 # means, 均值的橫線 plt.show()
import pandas as pd import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties font = FontProperties(fname=r'c:windowsfontssimsun.ttc') header_list = ['方程組', '函數', '導數', '微積分', '線性代數', '概率論', '統計學'] py3_df = pd.read_excel('py3.xlsx', header=None, skiprows=[0, 1], names=header_list) # 處理帶有NaN的行 py3_df = py3_df.dropna(axis=0) # print(py3_df) # 自定義對映 map_dict = { '不會': 0, '瞭解': 1, '熟悉': 2, '使用過': 3, } for header in header_list: py3_df[header] = py3_df[header].map(map_dict) unable_series = (py3_df == 0).sum(axis=0) know_series = (py3_df == 1).sum(axis=0) familiar_series = (py3_df == 2).sum(axis=0) use_series = (py3_df == 3).sum(axis=0) unable_label = '不會' know_label = '瞭解' familiar_label = '熟悉' use_label = '使用過' for i in range(len(header_list)): bottom = 0 # 描繪不會的條形圖 plt.bar(x=header_list[i], height=unable_series[i], width=0.60, color='r', label=unable_label) if unable_series[i] != 0: plt.text(header_list[i], bottom, s=unable_series[i], ha='center', va='bottom', fontsize=15, color='white') bottom += unable_series[i] # 描繪瞭解的條形圖 plt.bar(x=header_list[i], height=know_series[i], width=0.60, color='y', bottom=bottom, label=know_label) if know_series[i] != 0: plt.text(header_list[i], bottom, s=know_series[i], ha='center', va='bottom', fontsize=15, color='white') bottom += know_series[i] # 描繪熟悉的條形圖 plt.bar(x=header_list[i], height=familiar_series[i], width=0.60, color='g', bottom=bottom, label=familiar_label) if familiar_series[i] != 0: plt.text(header_list[i], bottom, s=familiar_series[i], ha='center', va='bottom', fontsize=15, color='white') bottom += familiar_series[i] # 描繪使用過的條形圖 plt.bar(x=header_list[i], height=use_series[i], width=0.60, color='b', bottom=bottom, label=use_label) if use_series[i] != 0: plt.text(header_list[i], bottom, s=use_series[i], ha='center', va='bottom', fontsize=15, color='white') unable_label = know_label = familiar_label = use_label = '' plt.xticks(header_list, fontproperties=font) plt.ylabel('人數', fontproperties=font) plt.title('Python3期數學摸底視覺化', fontproperties=font) plt.legend(prop=font, loc='upper left') plt.show()
方程組 函數 導數 微積分 線性代數 概率論 統計學 0 使用過 使用過 不會 不會 不會 不會 不會 1 使用過 使用過 瞭解 不會 不會 不會 不會 2 使用過 使用過 熟悉 不會 不會 不會 不會 3 熟悉 熟悉 熟悉 瞭解 瞭解 瞭解 瞭解 4 使用過 使用過 使用過 使用過 使用過 使用過 使用過 5 使用過 使用過 使用過 不會 不會 不會 瞭解 6 熟悉 熟悉 熟悉 熟悉 熟悉 熟悉 不會 7 使用過 使用過 使用過 使用過 使用過 使用過 使用過 8 熟悉 熟悉 熟悉 熟悉 熟悉 使用過 使用過 9 熟悉 熟悉 使用過 不會 使用過 使用過 不會 10 使用過 使用過 熟悉 熟悉 熟悉 熟悉 熟悉 11 使用過 使用過 使用過 使用過 使用過 不會 不會 12 使用過 使用過 使用過 使用過 使用過 使用過 使用過 13 使用過 使用過 瞭解 不會 不會 不會 不會 14 使用過 使用過 使用過 使用過 使用過 不會 不會 15 使用過 使用過 熟悉 不會 不會 不會 不會 16 熟悉 熟悉 使用過 使用過 使用過 不會 不會 17 使用過 使用過 使用過 瞭解 不會 不會 不會 18 使用過 使用過 使用過 使用過 熟悉 熟悉 熟悉 19 使用過 使用過 使用過 瞭解 不會 不會 不會 20 使用過 使用過 使用過 使用過 使用過 使用過 使用過 21 使用過 使用過 使用過 使用過 使用過 使用過 使用過 22 使用過 很瞭解 熟悉 瞭解一點,不會運用 瞭解一點,不會運用 瞭解 不會 23 使用過 使用過 使用過 使用過 熟悉 使用過 熟悉 24 熟悉 熟悉 熟悉 使用過 不會 不會 不會 25 使用過 使用過 使用過 使用過 使用過 使用過 使用過 26 使用過 使用過 使用過 使用過 使用過 不會 不會 27 使用過 使用過 不會 不會 不會 不會 不會 28 使用過 使用過 使用過 使用過 使用過 使用過 瞭解 29 使用過 使用過 使用過 使用過 使用過 瞭解 不會 30 使用過 使用過 使用過 使用過 使用過 不會 不會 31 使用過 使用過 使用過 使用過 不會 使用過 使用過 32 熟悉 熟悉 使用過 使用過 使用過 不會 不會 33 使用過 使用過 使用過 使用過 熟悉 使用過 熟悉 34 熟悉 熟悉 熟悉 使用過 使用過 熟悉 不會 35 使用過 使用過 使用過 使用過 使用過 使用過 使用過 36 使用過 使用過 使用過 使用過 使用過 使用過 瞭解 37 使用過 使用過 使用過 使用過 使用過 不會 不會 38 使用過 使用過 使用過 不會 不會 不會 不會 39 使用過 使用過 不會 不會 不會 不會 不會 40 使用過 使用過 使用過 使用過 使用過 不會 不會 41 使用過 使用過 熟悉 瞭解 瞭解 瞭解 不會 42 使用過 使用過 使用過 不會 不會 不會 不會 43 熟悉 使用過 瞭解 瞭解 不會 不會 不會
到此這篇關於Python中資料視覺化matplotlib與繪相簿模組的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45