读取csv文件,其中有五列数据,根据这五项数据利用matplotlib绘制趋势图
时间: 2024-05-11 14:13:58 浏览: 8
以下是一个简单的例子,假设csv文件名为"data.csv",包含五列数据x、y1、y2、y3、y4:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取csv文件
df = pd.read_csv("data.csv")
# 绘制趋势图
plt.plot(df["x"], df["y1"], label="y1")
plt.plot(df["x"], df["y2"], label="y2")
plt.plot(df["x"], df["y3"], label="y3")
plt.plot(df["x"], df["y4"], label="y4")
# 添加标题和标签
plt.title("Trend Chart")
plt.xlabel("x")
plt.ylabel("y")
plt.legend()
plt.show()
```
解释:
1. 使用pandas库的read_csv()函数读取csv文件,并将其存储在DataFrame对象df中。
2. 使用matplotlib库的plot()函数绘制趋势图,其中x轴的数据来自df["x"],y轴的数据分别来自df["y1"]、df["y2"]、df["y3"]、df["y4"]。
3. 使用title()、xlabel()、ylabel()函数添加标题和标签。
4. 使用legend()函数添加图例。
5. 使用show()函数显示图形。
相关问题
导入csv文件数据,利用matplotlib绘制趋势图
以下是一个简单的示例代码,演示如何导入csv文件数据并使用matplotlib绘制趋势图。
```python
import csv
import matplotlib.pyplot as plt
# 从csv文件中读取数据
filename = 'data.csv'
with open(filename) as f:
reader = csv.reader(f)
header_row = next(reader)
dates, highs, lows = [], [], []
for row in reader:
current_date = row[0]
high = int(row[1])
low = int(row[2])
dates.append(current_date)
highs.append(high)
lows.append(low)
# 绘制趋势图
fig = plt.figure(dpi=128, figsize=(10, 6))
plt.plot(dates, highs, c='red', alpha=0.5)
plt.plot(dates, lows, c='blue', alpha=0.5)
plt.fill_between(dates, highs, lows, facecolor='blue', alpha=0.1)
# 设置图形格式
plt.title("Daily high and low temperatures - 2020\nSan Francisco, CA", fontsize=20)
plt.xlabel('', fontsize=16)
fig.autofmt_xdate()
plt.ylabel("Temperature (F)", fontsize=16)
plt.tick_params(axis='both', which='major', labelsize=16)
plt.show()
```
在这个示例中,我们首先使用csv模块从一个名为"data.csv"的csv文件中读取数据。然后,我们将日期、最高温度和最低温度分别存储在列表dates、highs和lows中。
接下来,我们使用matplotlib绘制趋势图。我们使用plot()函数绘制最高和最低温度的线条,并使用fill_between()函数填充它们之间的区域。我们也设置了图形的标题、横轴和纵轴标签以及刻度大小。
最后,我们使用show()函数显示图形。运行代码后,将会看到一个趋势图,显示了2020年旧金山每天的最高和最低温度。
读取文件“近五年考试人数.csv”,绘制近五年高考及考研人数发展趋势图
首先,我们需要导入必要的库。
```python
import pandas as pd
import matplotlib.pyplot as plt
```
然后,读取数据文件并进行初步处理。
```python
df = pd.read_csv('近五年考试人数.csv', encoding='gbk')
df = df.set_index('年份')
```
接下来,我们可以绘制图表了。
```python
plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文显示
plt.rcParams['axes.unicode_minus'] = False # 解决负号问题
fig, ax = plt.subplots(figsize=(8, 6)) # 创建画布
# 绘制高考人数趋势图
ax.plot(df.index, df['高考人数'], label='高考人数')
# 绘制考研人数趋势图
ax.plot(df.index, df['考研人数'], label='考研人数')
# 设置图表标题和坐标轴标签
ax.set_title('近五年高考及考研人数发展趋势图')
ax.set_xlabel('年份')
ax.set_ylabel('人数 (万人)')
# 添加图例
ax.legend()
plt.show() # 显示图表
```
运行上述代码,就可以得到近五年高考及考研人数发展趋势图了。