matplot绘制图形入门
生活随笔
收集整理的這篇文章主要介紹了
matplot绘制图形入门
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、折線圖
""" File: 折線圖.py Author: chde_wang Date: 2021-05-23 22:26:04 Description: """ # 繪制折線圖 import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2 * np.pi, 100) y1, y2 = np.sin(x), np.cos(x) plt.plot(x, y1) plt.plot(x, y2) plt.title('line chart') plt.xlabel('x') plt.ylabel('y') plt.show()# 指定圖例:label # 指定顏色:c # 指定線型:關鍵字參數linestyle(或ls)用來設置線的樣式。可取值為: # -, solid # --, dashed # -., dashdot # :, dotted # 關鍵字參數linewidth(或lw)可以改變線的粗細 # marker的樣式:"o" "x" "v" x = np.linspace(0, 2 * np.pi, 100) y1, y2 = np.sin(x), np.cos(x) plt.plot(x, y1, label='y = sin(x)', c='r', linestyle='dashed', lw=5) plt.plot(x, y2, label='y = cos(x)', c='y', marker=">") plt.legend() plt.show()二、柱狀圖
""" File: 柱狀圖.py Author: chde_wang Date: 2021-05-23 22:08:14 Description: """import matplotlib as plt # -*- coding: utf-8 -*- import matplotlib.pyplot as pltnum_list = [1.5, 0.6, 7.8, 6] print(range(len(num_list))) plt.bar(range(len(num_list)), num_list) plt.show()num_list = [1.5, 0.6, 7.8, 6] print(range(len(num_list))) plt.bar(range(len(num_list)), num_list,fc='r') #設置顏色fc,彩色:rgb plt.show()name_list = ['Monday', 'Tuesday', 'Friday', 'Sunday'] num_list = [1.5, 0.6, 7.8, 6] plt.bar(range(len(num_list)), num_list, color='rgb', tick_label=name_list) plt.show()name_list = ['Monday', 'Tuesday', 'Friday', 'Sunday'] num_list = [1.5, 0.6, 7.8, 6] num_list1 = [1, 2, 3, 1] x = list(range(len(num_list))) total_width, n = 0.8, 2 width = total_width / nplt.bar(x, num_list, width=width, label='boy', fc='y') for i in range(len(x)):x[i] = x[i] + width plt.bar(x, num_list1, width=width, label='girl', tick_label=name_list, fc='r') plt.legend() plt.show()三餅圖
""" File: 餅圖.py Author: chde_wang Date: 2021-05-23 22:40:32 Description: """ #!/usr/bin/env python #!-*-coding:utf-8 -*- #!@Author : Biyoulin #!@Time : 2018/9/4 10:45import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標簽 # x :(每一塊)的比例,如果sum(x) > 1會使用sum(x)歸一化; # labels :(每一塊)餅圖外側顯示的說明文字; # explode :(每一塊)離開中心距離; # startangle :起始繪制角度,默認圖是從x軸正方向逆時針畫起,如設定=90則從y軸正方向畫起; # shadow :在餅圖下面畫一個陰影。默認值:False,即不畫陰影; # labeldistance :label標記的繪制位置,相對于半徑的比例,默認值為1.1, 如<1則繪制在餅圖內側; # autopct :控制餅圖內百分比設置,可以使用format字符串或者format function # '%1.1f'指小數點前后位數(沒有用空格補齊); # pctdistance :類似于labeldistance,指定autopct的位置刻度,默認值為0.6; # radius :控制餅圖半徑,默認值為1;counterclock :指定指針方向;布爾值,可選參數,默認為:True,即逆時針。將值改為False即可改為順時針。wedgeprops :字典類型,可選參數,默認值:None。參數字典傳遞給wedge對象用來畫一個餅圖。例如:wedgeprops={'linewidth':3}設置wedge線寬為3。 # textprops :設置標簽(labels)和比例文字的格式;字典類型,可選參數,默認值為:None。傳遞給text對象的字典參數。 # center :浮點類型的列表,可選參數,默認值:(0,0)。圖標中心位置。 # frame :布爾類型,可選參數,默認值:False。如果是true,繪制帶有表的軸框架。 # rotatelabels :布爾類型,可選參數,默認為:False。如果為True,旋轉每個label到指定的角度。 # labels = ['娛樂','育兒','飲食','房貸','交通','其它'] sizes = [2,5,12,70,2,9] explode = (0,0,0,0.1,0,0) plt.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',shadow=False,startangle=150) plt.title("餅圖示例-8月份家庭支出") plt.show()四詞圖
import jieba import numpy as np from PIL import Image from wordcloud import WordCloud import matplotlib.pyplot as plt pic_mask=np.array(Image.open("ty.jpg"))#獲取詞云形狀的圖片 text=open(r'kebiao.txt',encoding='utf8')#獲取分詞數據 mylist=list(text) word_list=[" ".join(jieba.cut(sentence)) for sentence in mylist] new_text=' '.join(word_list) wordcloud=WordCloud(font_path='simhei.ttf',background_color="white", #顯示的字體和背景顏色max_words=500,#出現次數最多的前500個分詞max_font_size=150,#顯示的最大字號random_state=40,#分詞顏色的隨機配色方案數量mask=pic_mask) #詞云形狀 w=wordcloud.generate(new_text)#傳入分詞列表 plt.imshow(w)#繪制詞云圖 plt.axis("off")#關閉坐標 plt.show()#顯示詞云圖import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標簽labels = 'A','B','C','D' sizes = [10,10,10,70] plt.pie(sizes,labels=labels)plt.title("餅圖詳解示例") plt.text(1,-1.2,'By:Biyoulin') plt.show() # -*- coding: utf-8 -*-import jieba import numpy as np from PIL import Image from wordcloud import WordCloud import matplotlib.pyplot as plt import bs4 import requests#爬取商品標題數據 url = 'https://re.taobao.com/search?keyword=%E8%BF%9B%E5%8F%A3%E9%9B%B6%E9%A3%9F&catid=50010550&refpid=619362_1007&_input_charset=utf8&clk1=b93e1915c335dd925dfcbf24ae696b12&spm=a21bo.2017.201874-p4p.7.5af911d9f5vIK4' # 網址 payload = {'SearchText': 'taob', 'page': '1', 'ie': 'utf8', 'g': 'y'} # 字典傳遞url參數 title = [] # 爬取商品標題 for i in range(0, 10): # 循環10次,就是10個頁面的商品數據payload['page'] = i # 此處為頁碼,根據網頁參數具體設置resp = requests.get(url, params=payload)soup = bs4.BeautifulSoup(resp.text, "html.parser")# print(resp.url) # 打印訪問的網址resp.encoding = 'utf-8' # 設置編碼# 標題all_title = soup.find_all('span', class_="title")for j in all_title:soup_title = bs4.BeautifulSoup(str(j), "html.parser",)title.append(soup_title.span.string) print(title)#商品標題詞云圖 pic_mask=np.array(Image.open("ty.jpg"))#獲取詞云形狀的圖片 print(len(title)) for i in title:words = jieba.lcut(i)new_text=' '.join(words) wordcloud=WordCloud(font_path='simhei.ttf',background_color="white", #顯示的字體和背景顏色max_words=100,#出現次數最多的前100個分詞max_font_size=150,#顯示的最大字號random_state=10,#分詞顏色的隨機配色方案數量mask=pic_mask) #詞云形狀 w=wordcloud.generate(new_text)#傳入分詞列表 plt.imshow(w)#繪制詞云圖 plt.axis("off")#關閉坐標 plt.show()#顯示詞云圖總結
以上是生活随笔為你收集整理的matplot绘制图形入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu的MySQL远程数据库连接问
- 下一篇: opencv5-图像混合