matplotlib生成png规定尺寸
时间: 2023-11-30 16:42:47 浏览: 142
根据提供的引用内容,我们可以使用Matplotlib生成PNG格式的图片,并规定图片的尺寸。具体实现方法如下所示:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)
# 绘制图形
fig = plt.figure(figsize=(6, 4)) # 设置图片尺寸为6*4
plt.plot(x, y)
# 保存图片
fig.savefig('sin_wave.png', dpi=300) # 保存为PNG格式,分辨率为300dpi
```
在上述代码中,我们使用`figsize`参数来设置图片的尺寸,单位为英寸。例如,`figsize=(6, 4)`表示图片的宽度为6英寸,高度为4英寸。同时,我们使用`dpi`参数来设置图片的分辨率,即每英寸像素数。例如,`dpi=300`表示每英寸有300个像素。
相关问题
import requests from bs4 import BeautifulSoup import pandas as pd import matplotlib.pyplot as plt from PIL import Image import os # 定义请求头 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} # 爬取页面的 URL url = 'https://movie.douban.com/top250' # 发送 GET 请求并获取响应 response = requests.get(url, headers=headers) html = response.text # 解析 HTML soup = BeautifulSoup(html, 'html.parser') # 获取电影列表 movies = [] for item in soup.find_all('div', class_='item'): movie = {} movie['rank'] = item.find('em').text movie['title'] = item.find('span', class_='title').text movie['director'] = item.find('div', class_='bd').p.text.split('\n')[1].strip().split(':')[1] movie['actors'] = item.find('div', class_='bd').p.text.split('\n')[2].strip()[3:] movie['score'] = item.find('span', class_='rating_num').text movie['votes'] = item.find('span', class_='rating_num').next_sibling.next_sibling.text[:-3] movie['cover_url'] = item.find('img')['src'] movies.append(movie) # 存储数据到 CSV 文件 df = pd.DataFrame(movies) df.to_csv('films.csv', index=False) # 下载封面图片并保存 if not os.path.exists('films_pic'): os.mkdir('films_pic') for movie in movies: img_url = movie['cover_url'] img_title = movie['title'] img_path = os.path.join('films_pic', f"{img_title}.jpg") response = requests.get(img_url, headers=headers) with open(img_path, 'wb') as f: f.write(response.content) # 可视化评分和人数 plt.plot(df['rank'], df['score'], label='Score') plt.plot(df['rank'], df['votes'], label='Votes') plt.xlabel('Rank') plt.legend() plt.savefig('score_votes.png') plt.show()
这段代码是一个爬取豆瓣电影 Top250 榜单信息的爬虫,主要实现以下功能:
1. 发送 GET 请求并获取响应,获取电影列表页面的 HTML 代码。
2. 解析 HTML 代码,获取电影信息,包括电影排名、电影名称、导演、演员、评分、评价人数、封面图片 URL。
3. 将电影信息存储到 DataFrame 中,并将 DataFrame 存储为 CSV 文件。
4. 下载电影封面图片,并保存到本地。
5. 可视化电影排名、评分、评价人数的关系,生成图表并保存到本地。
可以看出,这段代码主要使用了 requests 库、BeautifulSoup 库、pandas 库、matplotlib 库、os 库和 PIL 库。其中,requests 库用于发送 HTTP 请求,BeautifulSoup 库用于解析 HTML 代码,pandas 库用于处理数据,matplotlib 库用于绘制图表,os 库用于创建目录,PIL 库用于打开和保存图片。
需要注意的是,这段代码中的请求头 headers 可能不够隐蔽,存在被封禁的风险。建议在使用时根据实际情况调整请求头。此外,爬虫行为可能会违反豆瓣的相关规定,建议在合理使用的前提下进行爬取。
我想用python遍历TXT文件出图,并按规定名称保存
### 回答1:
你好!你可以使用Python的Matplotlib库来读取TXT文本文件并生成图表。以下是一个简单的示例代码,它会读取名为data.txt的文件,将数据转换为NumPy数组,然后使用Matplotlib生成一个简单的线性图表并将其保存为名为figure.png的文件。
```python
import numpy as np
import matplotlib.pyplot as plt
# 从文件读取数据
data = np.loadtxt('data.txt')
# 创建图表
fig, ax = plt.subplots()
# 绘制数据
ax.plot(data)
# 保存图表
fig.savefig('figure.png')
```
你可以根据你的需要修改代码,例如更改绘图类型、添加标签和标题等等。希望这可以帮助到你!
### 回答2:
要用Python遍历TXT文件并根据规定的名称保存,可以按照以下步骤进行操作:
1. 首先,导入需要的Python库,如matplotlib和os。
```python
import matplotlib.pyplot as plt
import os
```
2. 确定要遍历的TXT文件所在的目录,并使用os库的相关函数获取该目录下的所有TXT文件的路径。
```python
folder_path = "/path/to/txt/files"
file_paths = [os.path.join(folder_path, file) for file in os.listdir(folder_path) if file.endswith(".txt")]
```
3. 创建一个循环来遍历每个TXT文件,并解析文件中的内容。
```python
for file_path in file_paths:
with open(file_path, "r") as file:
# 按照相应的规则解析文件内容
# 如使用split函数分割文本行并提取所需信息
```
4. 根据解析的内容生成图形。
```python
# 创建图形对象
fig, ax = plt.subplots()
# 绘制图形,例如绘制折线图
ax.plot(x_values, y_values)
# 自定义图形样式和标签等
# 保存图形,按规定的名称命名
save_path = "/path/to/save/{}.png".format(file_name)
plt.savefig(save_path)
# 关闭图形对象,以便下次循环时创建新的图形对象
plt.close(fig)
```
5. 最后可以通过循环,遍历所有TXT文件,生成对应的图形文件。
这样,你就可以使用Python遍历TXT文件,根据规定的名称保存相应的图形文件了。
### 回答3:
您可以使用Python的文件处理和绘图库来遍历TXT文件并根据规定的名称保存图形。
1. 首先,您需要导入所需的库:matplotlib和os。
```python
import matplotlib.pyplot as plt
import os
```
2. 接下来,您需要编写一个函数,该函数将读取TXT文件的内容并生成图表。这里假设您的TXT文件中包含一个数字列表,每个数字代表一条曲线的数据。
```python
def generate_plot(file_path):
with open(file_path, 'r') as file:
data = [int(line.strip()) for line in file.readlines()]
plt.plot(data)
plt.xlabel('X轴标签')
plt.ylabel('Y轴标签')
plt.title('图表标题')
plt.grid(True)
plt.savefig('规定的名称.png')
plt.close()
```
3. 然后,您需要编写一个功能,该功能将遍历包含TXT文件的文件夹,并对每个文件调用上述函数。
```python
def traverse_files(folder_path):
for file_name in os.listdir(folder_path):
if file_name.endswith('.txt'):
file_path = os.path.join(folder_path, file_name)
generate_plot(file_path)
```
4. 最后,您只需调用上述功能并提供包含TXT文件的文件夹路径即可生成图表并按规定名称保存。
```python
traverse_files('文件夹路径')
```
请确保您已经正确安装了matplotlib库,并将上述代码中的相关标签名称和文件夹路径替换为实际的名称和路径。
阅读全文