python matplot繪圖工具練習

gaussen126發表於2024-07-08
# pyplot
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import pandas as pd

x_point = np.array([0,6])
y_point = np.array([0,100])
plt.plot(x_point,y_point,'b-.v')   # 格式處理
plt.show()

x = np.arange(0,4*np.pi, 0.1)
y = np.sin(x)
z = np.cos(x)
plt.plot (x,y,x,z)  # 函式繪圖, 繪製多條線
plt.show()

# 座標點的格式設定,“標記”  maker引數: 標記形狀,
ypoints = np.array([1,3,4,5,8,9,6,1,3,4,5,2,4])

plt.plot(ypoints, marker = 0, ms = 20, mec = 'r')  # 還有fmt引數:端點形狀,線形,顏色
plt.show()

#  標記:端點格式, 還可以 定義大小ms,內部顏色mfc,邊框顏色 mec , 顏色取值:r  或者#4CAF50


# 繪圖線格式:型別,顏色  ,大小
#    plot引數:linestyle ls color  線形值:‘-.’ dotted   color  c  值:r  HTML顏色值
#      寬度: linewidth  lw  值:

# 多條線
x1 = np.array([0, 1, 2, 3])
y1 = np.array([3, 7, 5, 9])
x2 = np.array([0, 1, 2, 3])
y2 = np.array([6, 2, 13, 10])

plt.subplot(1, 2, 1)   # 切分畫布為2個圖表
plt.plot(x1, y1, x2, y2)
plt.xlabel("X axis",loc = "left")
plt.ylabel("Y axis")
plt.title("title for sample")
plt.grid(axis= 'x', ls = '-.')
plt.show()
#  軸標籤內容,格式  和標題  xlable方法
''' 
     字型大小:fontproperties
    自定義樣式:fortdict
    定位:loc  值:left right center 
'''

'''
網格線:plt.grid()

網格線方向:axis1
color , ls  lw
b = ture 開關
'''

'''
繪製多個子圖:
subplot方法切分畫布
subplots; 引數:sharex   subplot_kw:傳入格式引數

'''

x = np.linspace(0, 2*np.pi, 400)
y = np.sin(x**2)
fig, axs = plt.subplots(2, 2, subplot_kw=dict(projection="polar"))
axs[0, 0].plot(x, y)
axs[1, 1].scatter(x, y)
plt.show()

# 散點圖
'''
資料:x y  一維序列,陣列
格式:s  c  ,   marker  norm/alpha  lw    

2個散點圖疊加顯示,不同的顏色點。
顏色條功能:cmap 值0-100 多種可選
     
 
'''
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
colors = np.array(["red","green","black","orange","purple","beige","cyan","magenta"])
sizes = np.array([20,50,100,200,500,1000,60,90])
plt.scatter(x, y, c=colors, s= sizes)

N = 10
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)

area = (30 * np.random.rand(N))**2  # 0 to 15 point radii
# plt.scatter(x, y, s=area, c=colors, alpha=0.5)  # 第2個圖

plt.scatter(x, y, s=area, c=colors, alpha=0.5 , cmap='viridis')  # 第2個圖
plt.colorbar()  # 顯示顏色條

plt.show()

'''
bar  pie hist 
imshow: 熱力圖,矩陣,地圖 
imsave 儲存影像
imread 讀取影像

'''

'''
seanborn:
主題: 深色網格  set_theme(style , context)
模板:標籤 線條格式  
繪圖函式:
    scatterplot()
    lineplot
    barplot
    heatmap 
    

'''

sns.set_theme(style="darkgrid", palette="pastel")
products = ["Product A", "Product B", "Product C", "Product D"]
sales = [120, 210, 150, 180]
sns.barplot(x=products, y=sales)
plt.show()


data = {'Category': ['A', 'B', 'C'], 'Value': [3, 7, 5]}
df = pd.DataFrame(data)  # dataframe
sns.barplot(x='Category', y='Value', data=df)
plt.show()

圖例

相關文章