matplotlib库和seaborn库
一 matplotlib库
保存图像
imsave():可以将生成的图像保存到指定的目录中
import matplotlib.pyplot as plt
import numpy as np# 创建一个二维的图像数据
img_data = np.random.random((100, 100))# 显示图像
plt.imshow(img_data)# 保存图像到磁盘上
plt.imsave('runoob-test.png', img_data)
保存彩色图像
import matplotlib.pyplot as plt
import numpy as np# 创建一幅灰度图像
img_gray = np.random.random((100, 100))# 创建一幅彩色图像
img_color = np.zeros((100, 100, 3))
img_color[:, :, 0] = np.random.random((100, 100))
img_color[:, :, 1] = np.random.random((100, 100))
img_color[:, :, 2] = np.random.random((100, 100))# 显示灰度图像
plt.imshow(img_gray, cmap='gray')# 保存灰度图像到磁盘上
plt.imsave('test_gray.png', img_gray, cmap='gray')# 显示彩色图像
plt.imshow(img_color)# 保存彩色图像到磁盘上
plt.imsave('test_color.jpg', img_color)
读取图像
import matplotlib.pyplot as plt# 读取图像文件
img = plt.imread('map.jpeg')# 显示图像
plt.imshow(img)
plt.show()
图像明暗度
import matplotlib.pyplot as pltimg_array = plt.imread('tiger.jpeg')
tiger = img_array/255
#print(tiger)
# 显示图像
plt.figure(figsize=(10,6))
for i in range(1,5):plt.subplot(2,2,i)x = 1 - 0.2*(i-1)plt.axis('off') #hide coordinate axesplt.title('x={:.1f}'.format(x))plt.imshow(tiger*x)plt.show()
截取图像
import matplotlib.pyplot as pltimg_array = plt.imread('tiger.jpeg')
tiger = img_array/255 #如果是新版的可以把除255去掉,否则会不现实图像
# 显示图像
plt.figure(figsize=(6,6))
plt.imshow(tiger[:300,100:400,:])
plt.axis('off')
plt.show()
单彩色图像
import matplotlib.pyplot as plt# 读取图像文件
img_array = plt.imread('tiger.jpeg')
tiger = img_array/255 #同理,除255根据实际情况定
# 显示图像
red_tiger = tiger.copy()red_tiger[:, :,[1,2]] = 0plt.figure(figsize=(10,10))
plt.imshow(red_tiger)
plt.axis('off')
plt.show()
二 seaborn库
一安装
pip:pip install seaborn -i +清华园镜像网址
conda:conda install seaborn
二导入
import seaborn as sns
三 主要语言
绘制散点图
格式:sns.scatterplot()
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd# 创建一个示例数据框
data = {'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)# 绘制散点图
sns.scatterplot(x='A', y='B', data=df)
plt.show()
绘制折线图
格式:sns.lineplot()
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd# 创建一个示例数据框
data = {'X': [1, 2, 3, 4, 5], 'Y': [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)# 绘制折线图
sns.lineplot(x='X', y='Y', data=df)
plt.show()
绘制柱状图
格式:sns.barplot()
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd# 创建一个示例数据框
data = {'Category': ['A', 'B', 'C'], 'Value': [3, 7, 5]}
df = pd.DataFrame(data)# 绘制柱状图
sns.barplot(x='Category', y='Value', data=df)
plt.show()
绘制箱线图
格式:sns.boxplot()
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd# 创建一个示例数据框
data = {'Category': ['A', 'A', 'B', 'B', 'C', 'C'], 'Value': [3, 7, 5, 9, 2, 6]}
df = pd.DataFrame(data)# 绘制箱线图
sns.boxplot(x='Category', y='Value', data=df)
plt.show()
绘制热图(相关矩阵可视化)
格式:sns.heatmap()
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd# 创建一个示例数据框
data = {'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1]}
df = pd.DataFrame(data)
# 创建一个相关性矩阵
correlation_matrix = df.corr()# 使用热图可视化相关性矩阵
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt=".2f")
plt.show()
绘制小提琴图
格式:sns.violinplot()
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd# 创建一个示例数据框
data = {'Category': ['A', 'A', 'B', 'B', 'C', 'C'], 'Value': [3, 7, 5, 9, 2, 6]}
df = pd.DataFrame(data)# 绘制小提琴图
sns.violinplot(x='Category', y='Value', data=df)
plt.show()