python之matplotlib製作基礎圖表以及圖例,標註,marker,中文設定

住在河邊的狐狸發表於2020-12-13

 

前言:

 

1. 基礎折線圖

2.柱狀圖

3.條形圖

4.散點圖

5.餅圖


前言:

鹹魚了好久,又來更新了,最近這個月考試比較多,也在搭建自己的資料分享學習QQ,主要是分享一些學習資料和大家相互交流解決一些問題和學習心得。新增方式在文章末尾。

好了,屁話不多說,進入正題。本期,主要是matplotlib的一些基礎圖片製作,相關的說明已經在程式碼裡了,也可以參考之前的文章。

 

1. 基礎折線圖

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 設定字型
plt.rcParams['axes.unicode_minus'] = False  # 設定正負號
# x軸的資料
x = [2, 18, 30, 45, 77]
x_1 = [2, 9, 50, 66]
# y軸資料
y = [33, 55, 23, 56, 99]
y_1 = [21, 88, 99, 67]
# 設定x軸,y軸標籤,設定表格標題
plt.xlabel('x軸')
plt.ylabel('y軸')
plt.title('折現圖')
# 設定折現圖
plt.plot(x, y, label='折線1', color='orange')
plt.plot(x_1, y_1, label='折線2', color='g')
# 設定圖例
plt.legend(loc='upper right')
# loc的屬性值
# best  \upper right  \upper left  \lower left  \lower right  \right
# center left  \center right  \ lower center  \upper center  \center
# 設定數值標註
for i in range(len(x)):
    plt.annotate(s=(x[i], y[i]), xy =(x[i], y[i]), xytext=(x[i], y[i]))
for z in range(len(x_1)):
    plt.annotate(s=(x_1[z], y_1[z]), xy=(x_1[z], y_1[z]), xytext=(x_1[z], y_1[z]))
# 設定y軸範圍
plt.ylim([0, 100])
plt.show()

2.柱狀圖

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 設定字型
plt.rcParams['axes.unicode_minus'] = False  # 設定正負號
# x軸的資料
x = [2, 3, 4, 5, 6]
# y軸資料
y = [0,0,0,31,48]
# 設定x軸,y軸標籤,設定表格標題
plt.xlabel('年份')
plt.ylabel('需求量')
plt.title('國際各類產品需求表')
# 增加數值
for i in range(len(x)):
    plt.annotate(s=(y[i]), xy=(x[i], y[i]), xytext=(x[i]-0.08, y[i]+0.2))
width = 0.12
plt.bar(x, y, label='p1', color='orange', width=width)
# 設定標註
plt.legend(loc='upper right')
plt.ylim(0, 50)
plt.show()

3.條形圖

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 設定字型
plt.rcParams['axes.unicode_minus'] = False  # 設定正負號
# x軸的資料
x = [1, 3, 5, 7, 9]
x_1 = [2, 4, 6, 8, 10]
# y軸資料
y = [33, 55, 23, 56, 99]
y_1 = [22, 44, 8, 71, 35]
# 設定x軸,y軸標籤,設定表格標題
plt.xlabel('y軸')
plt.ylabel('x軸')
plt.title('條形圖')
plt.barh(x, y, align='center', label='柱子1', color='skyblue', alpha=0.8)
plt.barh(x_1, y_1, align='center', label='柱子2', color='orange', alpha=0.8 )
# 增加數值
for i in range(len(x)):
    plt.annotate(s=(y[i]), xy=(y[i],x[i]), xytext=(y[i]+0.5, x[i]))
for c in range(len(x_1)):
    plt.annotate(s=(y_1[c]), xy=(y_1[c], x_1[c]), xytext=(y_1[c]+0.5, x_1[c]))
# 設定標註
plt.legend(loc='upper right')

plt.show()

4.散點圖

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']  # 設定字型
plt.rcParams['axes.unicode_minus'] = False  # 設定正負號
# 設定點資料
x = [1, 2, 4, 5, 3, 1, 6, 2, 3, 5, 9]
x_1=np.random.randint(100,size=(1,30))
y_1=np.random.randint(100,size=(1,30))
x_2=np.random.randint(200,size=(1,30))
y_2=np.random.randint(200,size=(1,30))
y = [2, 4, 6, 2, 8, 5, 9, 3, 8, 12, 23]
# 作圖,marker:散點圖形裝,label設定圖例
plt.scatter(x, y, color='skyblue', marker='8', label='散點1')
plt.scatter(x_1, y_1, color='orange', marker='8', label='散點2')
plt.scatter(x_2, y_2, color='pink', marker='8', label='散點3')
# 設定圖例位置
plt.legend(loc='upper right')
# 設定主題
plt.title('散點圖')
plt.show()

5.餅圖

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 設定字型
plt.rcParams['axes.unicode_minus'] = False  # 設定正負號
# 設定輸入的各個佔比資料
x = [ 14, 9,45, 21, 3, 1, 12]
# 設定顏色
colors =['lightgreen', 'skyblue', 'orange', 'blue', 'purple', 'c','red']
# 設定各個資料的標籤
labels = ['三點', '七五', '阿薩', '起飛前往', '阿斯頓', '阿德'
         , '親吻' ]
# 設定各個模組距離中心的位置
# explode = [0, 0, 0, 0.1, 0]
# 作圖,plt.pie(資料,資料標籤labels,模組距離中心的位置,explode,顯示百分比autopct ='%.1f%%', shadow:顯示陰影)
plt.pie(x, labels=labels, colors=colors, autopct='%1.1f%%', explode=[0.1, 0, 0, 0, 0, 0, 0], shadow=False)
# 設定標題
plt.title('餅圖')
plt.show()

好啦,希望對你的學習有幫助,也期待你們進到我的學習群一起進步。951659404

 

相關文章