【Python】matplotlib绘图 && PIL操作image文件

matplotlib包

数据可视化的包

下载

Win+R 输入指令:
包下载原理:从数据源网站下载包;
但一般数据源为外网,下载速度慢,所以可以通过国内镜像网站下载,下载速度更快
以下 以 清华大学的镜像为例

pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple/

直方图

核心函数 plt.bar( X , Y )

plt.bar( X, Y) #以x为横坐标标签,Y为纵坐标数值
plt.title('Name') #直方图表头
plt.xticks( X, X_names )#x轴的标签显示为X_names
plt.ylabel('Y_name') #Y轴标签
plt.show()

条形图

核心函数: plt.hist(value,bins=N)

plt.hist(value,bins=100) #把x轴分为100份,y轴值为value

折线图

核心函数plt.plot(x,y)

from matplotlib import pyplot as plt
fig1 = plt.figure(figsize=(5,5)) #定义图片大小
plt.plot(x,y) #填充x轴坐标值和y轴坐标值
plt.title('y vs x') #命名图表标题
plt.xlabel('x') #命名x轴标题
plt.ylabel('y') #命名y轴标题
plt.show() # 展示图形

散点图

核心函数plt.scatter(x,y)

from matplotlib import pyplot as plt
fig1 = plt.figure(figsize=(5,5)) #定义图片大小
plt.scatter(x,y) #填充x轴坐标值和y轴坐标值
plt.title('y vs x') #命名图表标题
plt.xlabel('x') #命名x轴标题
plt.ylabel('y') #命名y轴标题
plt.show() # 展示图形

散点图参数

plt.scatter (
	x, #x轴值
	y, #y轴值
	marker = 'o', #标记形状
	facecolor = 'blue', #填充色
	edgecolor = 'red', #边线色
	s = 50 #大小
)

多张图同时展示

核心函数 plt.subplot( )

import matplotlib.pyplot as plt
fig = plt.figure(figsize=(10,10)) #统一图表坐标轴范围
fig1 = plt.subplot(2,1,1) #"211"指,一张图分为两行一列,该图在第一部分;"abc"指,一张图粉为a行b列,该图在第c部分
plt.scatter(x1,x2)
fig2 = plt.subplot(2,1,2)
plt.scatter(x2,y2)

分类散点图可视化

核心函数 x[flag]

import matplotlib.pyplot as plt
mask = y==1 #设定通过条件
passed = plt.scatter(X1[mask],X2[mask]) #通过的点
failed = plt.scatter(x1[~mask],x2[~mask]) #未通过的点

图例

plt.legend( (passed,failed), ('passed','failed') )

树状图

from matplotlib import pyplot as plt
tree.plot_tree( 
	tree_data_name, #树 数据
	filled = 'True', #背景填充色
	feature_names=['name1','name2','name3','name4'],#特征名称
	class_names=['name1','name2','name3','name4'] #label名称
	fontsize=20   #字的尺寸
	)
	

区域块染色

例图:
在这里插入图片描述
原理:蓝色和橘色其实是许多个小点组成,只要足够密,即可达到上图效果

import numpy as np
xx,yy = np.meshgrid(
	np.arrange(0,10,0.05),#在 (0,10)范围内,以0.05为间距,生成线性数组
	np.arrange(0,10,0.05)# 在 (0,10)范围内,以0.05为间距,生成线性数组
	)
x_range = np.c_[xx.ravel(),yy.ravel()]
pred_y_range = KNN.predict(x_range)

图片显示

plt.imshow( data_name )

原理:一张图片,其实是无数个像素点组成的,每个像素点对应一个数值;所以一张图片的 本质是一个二维数组矩阵,每个元素点的值为 [0,255]的int类

以下假设,一张图片的像素数据存储在数组point

from matplotlib import pyplot as plt
img1 = point
fig1 = plt.figure()
plt.imshow(img1)
plt.show()

pillow包

from PIL import Image
import matplotlib.pyplot as plt
#读取
img = Image.open('数字识别5.jpg')
# 按比例缩小
img.thumbnail(  (25,25)  )
# 图像转码
img = np.array(img)
if img.ndim == 3:     #RGB图转灰度图
    img = img[:,:,0]
plt.imshow(img)
plt.show()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 可以使用Python中的Pillow库来实现将CSV文件转成图片,以下是实现的代码: ```python from PIL import Image import csv data = [] with open('example.csv', newline='') as f: reader = csv.reader(f) for row in reader: data.append(row) img = Image.new('RGB', (len(data[0]), len(data))) pixels = img.load() for i in range(len(data)): for j in range(len(data[i])): pixel = int(data[i][j]) pixels[j, i] = (pixel, pixel, pixel) img.show() ``` 这段代码将读取一个名为example.csv的CSV文件,并将其转换为一个黑白图像并显示出来。为了使用该代码,您需要安装Pillow库。 ### 回答2: 要将Python的CSV文件转化为图片,可以使用以下步骤: 1. 导入必要的模块:你需要导入`pandas`和`matplotlib`模块来处理CSV数据和生成图像。 2. 读取CSV文件:使用`pandas`库的`read_csv`函数来读取CSV文件,并将其存储为一个数据帧。 3. 准备数据:根据你的需求,对数据进行必要的清理、处理和转换。例如,你可能需要删除不需要的列、处理缺失值或进行转换等操作。 4. 绘制图像:使用`matplotlib`库的各种绘图函数来创建图像。你可以选择根据数据的特点选择适当的类型,如折线图、散点图、饼图等。 5. 保存图像:使用`matplotlib`库的`savefig`函数将生成的图像保存为文件。你可以指定图像的格式(如PNG、JPEG等)和保存的路径。 以下是一个简单示例的代码,将CSV文件中的一列数据绘制为折线图并保存为PNG文件: ```python import pandas as pd import matplotlib.pyplot as plt # 读取CSV文件 data = pd.read_csv('data.csv') # 准备数据,假设CSV文件的第一列是x轴数据,第二列是y轴数据 x = data.iloc[:, 0] y = data.iloc[:, 1] # 绘制折线图 plt.plot(x, y) # 添加标题和坐标轴标签 plt.title('CSV数据折线图') plt.xlabel('X轴') plt.ylabel('Y轴') # 保存图像为PNG文件 plt.savefig('plot.png') ``` 同时,你可以根据自己的需求自定义图像的样式、图例、刻度等,并使用其他的绘图函数来绘制不同类型的图像。 ### 回答3: 在Python中,可以通过使用Pandas库来读取和处理CSV文件,并使用Matplotlib库来绘制图像。 首先,我们需要安装Pandas和Matplotlib库。在命令行中运行以下命令安装它们: ``` pip install pandas matplotlib ``` 接下来,我们将使用Pandas的read_csv函数来读取CSV文件。假设CSV文件名为data.csv,文件中包含了图像数据。可以使用以下代码来读取CSV文件并将数据存储在一个Pandas DataFrame中: ```python import pandas as pd data = pd.read_csv('data.csv') ``` 读取CSV文件后,我们可以根据数据的列来生成图片。假设CSV文件中的一列代表了图像的像素值,我们可以使用Matplotlib的imshow函数来绘制图像。以下是一个示例代码: ```python import matplotlib.pyplot as plt # 从DataFrame获取图像数据列 pixels = data['pixels'] # 创建一个2D数组来存储图像数据 image = [list(map(int, pixel.split())) for pixel in pixels] # 绘制图像 plt.imshow(image, cmap='gray') plt.axis('off') plt.show() ``` 以上代码中,我们首先从DataFrame中获取图像数据列,并将其存储在一个新的变量pixels中。然后,我们使用一个列表推导式将每个像素值分割,并将其转换为整数类型的列表。 最后,我们使用Matplotlib的imshow函数来绘制图像。使用参数cmap='gray'可以确保图像以灰度的方式显示。同时,使用plt.axis('off')可以隐藏坐标轴。 运行以上代码后,将会显示生成的图像。根据CSV文件中的像素值,可以生成对应的图像。 总结起来,在Python中,我们可以使用Pandas读取CSV文件,然后使用Matplotlib绘制图像。使用这两个库的函数和方法,可以轻松地将CSV文件转换为图片。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GoesM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值