【python数据分析课程设计】2015年至2022年中国黄金价格分析
一、选题的背景
黄金作为一种宝贵的物品,不仅具有珍贵的装饰价值,还被视为重要的金融资产和货币储备。通过分析中国黄金市场的供需数据,可以了解黄金的供应量和需求量的变化趋势。从而预测大致的走向。
二、中国黄金价格大数据分析设计方案
1.数据内容应该包括:
黄金价格数据:包括2015年至2020每月中的几天的黄金开盘价、收盘价、最高价、最低价、平均值。
数据特征: 时序性:数据随时间变化,呈现趋势和周期性。 异常值:由于市场波动和数据采集问题,存在异常值需要处理。
2.课程设计方案概述
实现思路: 数据清洗与整理:处理缺失值、异常值,确保数据质量。 数据探索与可视化:分析数据分布、相关性,使用图表展示数据特征。 模型训练与评估:选择合适的机器学习或深度学习模型进行训练,评估模型性能。 预测与优化:利用训练好的模型进行预测,根据结果优化模型和参数。
技术难点: 数据整合:如何从多个来源整合相关数据,确保数据的一致性和准确性。 数据处理:时序数据的处理和分析技巧,如趋势分析等。 可解释性:在保证预测准确性的同时,提高模型的可解释性,便于业务理解和应用。
三、数据分析步骤
1.数据源 kaggle,具体网址来源(https://www.kaggle.com/code/liqiang2022/eda-and-price-prediction-on-chinese-gold-market/input)
2.数据清洗
导入库并显示前面几行
1 import pandas as pd 2 import numpy as np 3 import pandas as pd 4 gold = pd.read_csv('gold_price_china.csv',index_col=0) 5 gold.head()
将gold_price_china.csv的日期数据拆分为年月日并且显示
1 gold['trade_date'] = pd.to_datetime(gold['trade_date']) 2 3 gold['day']=gold['trade_date'].dt.day 4 gold['month']=gold['trade_date'].dt.month 5 gold['year'] = gold['trade_date'].dt.year 6 7 print(gold[['day','month','year']])
显示重复的数据
1 gold = pd.read_csv('gold_price_china.csv') 2 print(gold.duplicated().sum())
显示缺失的数据
print(gold.isnull().sum())
将缺失的数据以nopct_change补充,并且显示确认是否补充完
gold['pct_change'] = gold['pct_change'].fillna('noptc_change')
print(gold.isnull().sum())
3.使用sklearn库数据分析。
提取特征,并且划分训练集和测试集并且进行评估和解释
1 import pandas as pd 2 from sklearn.linear_model import LinearRegression 3 from sklearn.model_selection import train_test_split 4 from sklearn.metrics import mean_squared_error, r2_score 5 6 gold = pd.read_csv('gold_price_china.csv') 7 8 # 特征选择 9 X = gold[['open', 'close']] 10 11 12 y = gold['year'] 13 14 # 数据划分 15 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) 16 17 # 模型建立 18 model = LinearRegression() 19 model.fit(X_train, y_train) 20 21 # 模型评估 22 y_pred = model.predict(X_test) 23 mse = mean_squared_error(y_test, y_pred) 24 r2 = r2_score(y_test, y_pred) 25 print('Mean Squared Error (MSE):', mse) 26 print('Coefficient of Determination (R^2):', r2) 27 28 # 模型解释 29 coefficients = pd.DataFrame({'Feature': X.columns, 'Coefficient': model.coef_}) 30 intercept = model.intercept_ 31 print('Intercept:', intercept) 32 print(coefficients)
计算测试集和训练集的均方误差
1 from sklearn.metrics import mean_squared_error 2 3 y_train_pred = model.predict(X_train) 4 mse_train = mean_squared_error(y_train, y_train_pred) 5 y_test_pred = model.predict(X_test) 6 mse_test = mean_squared_error(y_test, y_test_pred) 7 8 print("Train Mean Squared Error (MSE):", mse_train) 9 print("Test Mean Squared Error (MSE):", mse_test)
使用模型,并进行预测
1 X_new = gold[['high', 'low']] 2 y_new_pred = model.predict(X_new) 3 4 y_new_pred_df = pd.DataFrame(y_new_pred, columns=['prediction']) 5 6 y_new_pred_df.head()
4.数据可视化
通过平均价格与销售量的散点图可以发现,销售量主要在250到300是最多
1 #平均价格与销售量的散点图 2 a = gold[gold['vol']<6000] 3 plt.figure(figsize=(16, 4), dpi=80) 4 sns.regplot(data=a, x='price_avg', y='vol') 5 plt.show()
收盘价格和开盘价格的条形图
1 import pandas as pd 2 import matplotlib.pyplot as plt 3 4 gold = pd.read_csv('gold_price_china.csv') 5 gold['trade_date'] = pd.to_datetime(gold['trade_date']) 6 7 gold['year'] = gold['trade_date'].dt.year 8 9 gold.drop(['trade_date'], axis=1, inplace=True) 10 11 grouped_gold = gold.groupby('year').mean() 12 13 # 提取开盘价和收盘价的列 14 open_prices = grouped_gold['open'] 15 close_prices = grouped_gold['close'] 16 17 plt.bar(grouped_gold.index, open_prices, width=0.4, label='open') 18 plt.bar(grouped_gold.index, close_prices, width=0.4, label='close',bottom=open_prices) 19 20 21 plt.title('gold price') 22 plt.xlabel('year') 23 plt.ylabel('price') 24 25 plt.legend() 26 27 plt.show()
分别画历年最低、最高、开盘、收盘价格与销售量的关系的线性图进行分析对比
1 #历年最低、最高、开盘、收盘价格与销售量的关系折线 2 import pandas as pd 3 import matplotlib.pyplot as plt 4 5 # 提取价格列 6 dates = gold['vol'] 7 open_prices = gold['open'] 8 close_prices = gold['close'] 9 low_prices = gold['low'] 10 high_prices = gold['high'] 11 12 # 绘制开盘价线性图 13 plt.subplot(2, 2, 1) 14 plt.plot(dates, open_prices, label='open', color='b') 15 plt.xlabel('year') 16 plt.ylabel('price') 17 plt.title('open') 18 plt.legend() 19 20 # 绘制收盘价线性图 21 plt.subplot(2, 2, 2) 22 plt.plot(dates, close_prices, label='close', color='r') 23 plt.xlabel('vol') 24 plt.ylabel('price') 25 plt.title('close') 26 plt.legend() 27 28 # 绘制最低价线性图 29 plt.subplot(2, 2, 3) 30 plt.plot(dates, low_prices, label='close', color='g') 31 plt.xlabel('vol') 32 plt.ylabel('pricec') 33 plt.title('low') 34 plt.legend() 35 36 # 绘制最高价线性图 37 plt.subplot(2, 2, 4) 38 plt.plot(dates, high_prices, label='hight', color='m') 39 plt.xlabel('vol') 40 plt.ylabel('price') 41 plt.title('hight') 42 plt.legend() 43 44 # 调整子图布局 45 plt.tight_layout() 46 47 # 显示图形 48 plt.show()
进行展示开盘,收盘历年价格对比
1 import matplotlib.pyplot as plt 2 import seaborn as sns 3 4 plt.figure(figsize=(12, 4), dpi=80) 5 sns.lineplot(data=gold, x='year', y='close') 6 plt.show() 7 8 plt.figure(figsize=(12, 4), dpi=80) 9 sns.lineplot(data=gold, x='year', y='open') 10 plt.show()
开盘、收盘、最低、最高的平均价格的柱状图,可以看出,总体上价格基本一致,相差不大
1 import pandas as pd 2 import matplotlib.pyplot as plt 3 4 # 计算平均值 5 mean_high = gold['high'].mean() 6 mean_low = gold['low'].mean() 7 mean_open = gold['open'].mean() 8 mean_close = gold['close'].mean() 9 10 print(f"最高价平均值:{mean_high}") 11 print(f"最低价平均值:{mean_low}") 12 print(f"开盘价平均值:{mean_open}") 13 print(f"收盘价平均值:{mean_close}") 14 15 data = { 16 '指标': ['最高价', '最低价', '开盘价', '收盘价'], 17 '平均值': [mean_high, mean_low, mean_open, mean_close] 18 } 19 df = pd.DataFrame(data) 20 21 # 绘制簇状柱形图 22 fig, ax = plt.subplots(figsize=(8, 6)) 23 ax.bar(df['指标'], df['平均值'], color=['orange', 'green', 'pink', 'lightblue']) 24 ax.set_title('中国黄金价格指标平均值簇状柱形图', fontsize=14) 25 ax.set_xlabel('价格指标', fontsize=12) 26 ax.set_ylabel('平均值', fontsize=12) 27 ax.tick_params(axis='both', labelsize=12) 28 29 plt.show()
中国黄金的最低价、最高价、收盘价、开盘价的折线图,可以看出来开盘价的价格是非常接近最低价
1 import pandas as pd 2 import matplotlib.pyplot as plt 3 4 # 设置图形大小 5 plt.figure(figsize=(10, 6)) 6 7 # 绘制折线图 8 plt.plot(gold['year'], gold['low'], label='最低价') 9 plt.plot(gold['year'], gold['high'], label='最高价') 10 plt.plot(gold['year'], gold['close'], label='收盘价') 11 plt.plot(gold['year'], gold['open'], label='开盘价') 12 plt.legend() 13 plt.title('中国黄金价格图', fontsize=14) 14 plt.xlabel('时间', fontsize=12) 15 plt.ylabel('价格', fontsize=12) 16 plt.grid(True) 17 plt.show()
具体的显示18年到19年的2018年至2022年中国黄金销售量对比
1 #2018年至2022年中国黄金销售量对比 2 3 date = ['2018-01-01', '2019-01-01', '2020-01-01', '2021-01-01', '2022-01-01'] 4 vol = gold['vol'] 5 6 filtered_df = gold[(gold['trade_date'].dt.year >= 2018) & (gold['trade_date'].dt.year <= 2022)] 7 plt.figure(figsize=(10, 6)) 8 9 # 绘制折线图 10 plt.plot(filtered_df['trade_date'], filtered_df['vol'], label='最低价') 11 12 # 设置图例 13 plt.legend() 14 15 # 设置标题和标签 16 plt.title('C', fontsize=14) 17 plt.xlabel('年份', fontsize=12) 18 plt.ylabel('人数', fontsize=12) 19 20 # 显示图形 21 plt.show()
最低最高、开盘收盘价格分析条形图
#最低最高、开盘收盘价格分析条形图 # 设置中文字体和解决负号显示问题 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False # 创建子图 fig, axs = plt.subplots(2, 2, figsize=(12, 8)) # 最高价分布图 axs[0, 0].hist(gold['high'], color='orange', alpha=0.7) axs[0, 0].set_title('最高价分布图', fontsize=14) axs[0, 0].set_xlabel('价格', fontsize=12) axs[0, 0].set_ylabel('频数', fontsize=12) axs[0, 0].tick_params(axis='both', labelsize=12) axs[0, 0].grid(axis='y', linestyle='--') # 最低价分布图 axs[0, 1].hist(gold['low'], color='green', alpha=0.7) axs[0, 1].set_title('最低价分布图', fontsize=14) axs[0, 1].set_xlabel('价格', fontsize=12) axs[0, 1].set_ylabel('频数', fontsize=12) axs[0, 1].tick_params(axis='both', labelsize=12) axs[0, 1].grid(axis='y', linestyle='--') # 开盘价分布图 axs[1, 0].hist(gold['open'], color='pink', alpha=0.7) axs[1, 0].set_title('开盘价分布图', fontsize=14) axs[1, 0].set_xlabel('价格', fontsize=12) axs[1, 0].set_ylabel('频数', fontsize=12) axs[1, 0].tick_params(axis='both', labelsize=12) axs[1, 0].grid(axis='y', linestyle='--') # 收盘价分布图 axs[1, 1].hist(gold['close'], color='lightblue', alpha=0.7) axs[1, 1].set_title('收盘价分布图', fontsize=14) axs[1, 1].set_xlabel('价格', fontsize=12) axs[1, 1].set_ylabel('频数', fontsize=12) axs[1, 1].tick_params(axis='both', labelsize=12) axs[1, 1].grid(axis='y', linestyle='--') # 调整子图间距 plt.tight_layout() # 显示图形 plt.show()
总代码
1 import pandas as pd 2 import numpy as np 3 from sklearn.linear_model import LinearRegression 4 from sklearn.model_selection import train_test_split 5 from sklearn.metrics import mean_squared_error, r2_score 6 7 gold = pd.read_csv('gold_price_china.csv',index_col=0) 8 gold.head() 9 10 # 读取数据到gold变量中(假设数据已经存在) 11 gold = pd.read_csv('data.csv') 12 # 将trade_date列转换为datetime类型 13 gold['trade_date'] = pd.to_datetime(gold['trade_date']) 14 # 提取trade_date的日、月、年信息,并分别存储在day、month、year列中 15 gold['day'] = gold['trade_date'].dt.day 16 gold['month'] = gold['trade_date'].dt.month 17 gold['year'] = gold['trade_date'].dt.year 18 # 打印包含day、month、year列的数据 19 print(gold[['day', 'month', 'year']]) 20 21 gold = pd.read_csv('gold_price_china.csv') 22 print(gold.duplicated().sum()) 23 24 print(gold.isnull().sum()) 25 26 gold['pct_change'] = gold['pct_change'].fillna('noptc_change') 27 print(gold.isnull().sum()) 28 29 # 读取数据 30 gold = pd.read_csv('gold_price_china.csv') 31 # 特征选择:选择'high'和'low'两列作为特征 32 X = gold[['high', 'low']] 33 y = gold['year'] 34 35 # 数据划分:将数据集划分为训练集和测试集,测试集占比为0.2 36 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) 37 # 模型建立:使用线性回归模型进行拟合 38 model = LinearRegression() 39 model.fit(X_train, y_train) 40 41 # 模型评估:预测测试集的输出值,并计算均方误差(MSE)和决定系数(R^2) 42 y_pred = model.predict(X_test) 43 mse = mean_squared_error(y_test, y_pred) 44 r2 = r2_score(y_test, y_pred) 45 46 # 输出评估结果 47 print('Mean Squared Error (MSE):', mse) 48 print('Coefficient of Determination (R^2):', r2) 49 50 # 模型解释:输出模型的截距和系数 51 coefficients = pd.DataFrame({'Feature': X.columns, 'Coefficient': model.coef_}) 52 intercept = model.intercept_ 53 54 print('Intercept:', intercept) 55 print(coefficients) 56 57 # 使用模型对训练集进行预测,得到预测结果y_train_pred 58 y_train_pred = model.predict(X_train) 59 60 # 计算训练集的均方误差,即真实值与预测值之间的平方差的均值 61 mse_train = mean_squared_error(y_train, y_train_pred) 62 63 # 使用模型对测试集进行预测,得到预测结果y_test_pred 64 y_test_pred = model.predict(X_test) 65 66 # 计算测试集的均方误差,即真实值与预测值之间的平方差的均值 67 mse_test = mean_squared_error(y_test, y_test_pred) 68 69 # 输出训练集和测试集的均方误差 70 print("Train Mean Squared Error (MSE):", mse_train) 71 print("Test Mean Squared Error (MSE):", mse_test) 72 73 import pandas as pd 74 75 # 进行新数据的预测 76 X_new = gold[['high', 'low']] 77 y_new_pred = model.predict(X_new) 78 79 # 将预测结果转换为DataFrame对象 80 y_new_pred_df = pd.DataFrame(y_new_pred, columns=['prediction']) 81 82 # 查看前几个预测结果 83 y_new_pred_df.head() 84 85 #平均价格与销售量的聚散图 86 a = gold[gold['vol']<6000] 87 plt.figure(figsize=(16, 4), dpi=80) 88 sns.regplot(data=a, x='price_avg', y='vol') 89 plt.show() 90 91 import matplotlib.pyplot as plt 92 # 读取黄金价格数据 93 gold = pd.read_csv('gold_price_china.csv') 94 95 # 将交易日期转换为datetime类型,并提取年份 96 gold['trade_date'] = pd.to_datetime(gold['trade_date']) 97 gold['year'] = gold['trade_date'].dt.year 98 99 # 删除原始的交易日期列 100 gold.drop(['trade_date'], axis=1, inplace=True) 101 102 # 按年份分组,计算每组的平均开盘价和收盘价 103 grouped_gold = gold.groupby('year').mean() 104 105 # 提取开盘价和收盘价的列 106 open_prices = grouped_gold['open'] 107 close_prices = grouped_gold['close'] 108 109 # 绘制条形图,分别表示开盘价和收盘价 110 plt.bar(grouped_gold.index, open_prices, width=0.4, label='open') 111 plt.bar(grouped_gold.index, close_prices, width=0.4, label='close', bottom=open_prices) 112 113 # 设置图表标题、x轴标签和y轴标签 114 plt.title('gold price') 115 plt.xlabel('year') 116 plt.ylabel('price') 117 118 # 显示图例 119 plt.legend() 120 # 显示图表 121 plt.show() 122 123 # 提取价格列 124 dates = gold['vol'] 125 open_prices = gold['open'] 126 close_prices = gold['close'] 127 low_prices = gold['low'] 128 high_prices = gold['high'] 129 130 # 绘制开盘价线性图 131 plt.subplot(2, 2, 1) 132 plt.plot(dates, open_prices, label='open', color='b') 133 plt.xlabel('year') 134 plt.ylabel('price')
135 plt.title('open') 136 plt.legend() 137 138 # 绘制收盘价线性图 139 plt.subplot(2, 2, 2) 140 plt.plot(dates, close_prices, label='close', color='r') 141 plt.xlabel('vol') 142 plt.ylabel('price') 143 plt.title('close') 144 plt.legend() 145 146 # 绘制最低价线性图 147 plt.subplot(2, 2, 3) 148 plt.plot(dates, low_prices, label='low', color='g') 149 plt.xlabel('vol') 150 plt.ylabel('pricec') 151 plt.title('low') 152 plt.legend() 153 154 # 绘制最高价线性图 155 plt.subplot(2, 2, 4) 156 plt.plot(dates, high_prices, label='hight', color='m') 157 plt.xlabel('vol') 158 plt.ylabel('price') 159 plt.title('hight') 160 plt.legend() 161 162 # 调整子图布局 163 plt.tight_layout() 164 165 # 显示图形 166 plt.show() 167 168 # 导入matplotlib.pyplot和seaborn库 169 import matplotlib.pyplot as plt 170 import seaborn as sns 171 172 # 创建一个12x4英寸的图形,分辨率为80dpi 173 plt.figure(figsize=(12, 4), dpi=80) 174 # 使用seaborn库绘制黄金价格的收盘价折线图,横坐标为年份,纵坐标为收盘价 175 sns.lineplot(data=gold, x='year', y='close') 176 # 显示图形 177 plt.show() 178 179 # 创建一个12x4英寸的图形,分辨率为80dpi 180 plt.figure(figsize=(12, 4), dpi=80) 181 # 使用seaborn库绘制黄金价格的开盘价折线图,横坐标为年份,纵坐标为开盘价 182 sns.lineplot(data=gold, x='year', y='open') 183 # 显示图形 184 plt.show() 185 186 # 导入所需库 187 import pandas as pd 188 import matplotlib.pyplot as plt 189 190 # 读取黄金价格数据 191 gold = pd.read_csv('中国黄金价格数据.csv') 192 193 # 计算最高价、最低价、开盘价和收盘价的平均值 194 mean_high = gold['high'].mean() 195 mean_low = gold['low'].mean() 196 mean_open = gold['open'].mean() 197 mean_close = gold['close'].mean() 198 199 # 输出平均值结果 200 print(f"最高价平均值:{mean_high}") 201 print(f"最低价平均值:{mean_low}") 202 print(f"开盘价平均值:{mean_open}") 203 print(f"收盘价平均值:{mean_close}") 204 205 # 创建包含指标和平均值的数据框 206 data = { 207 '指标': ['最高价', '最低价', '开盘价', '收盘价'], 208 '平均值': [mean_high, mean_low, mean_open, mean_close] 209 } 210 df = pd.DataFrame(data) 211 212 # 绘制簇状柱形图 213 fig, ax = plt.subplots(figsize=(8, 6)) 214 ax.bar(df['指标'], df['平均值'], color=['orange', 'green', 'pink', 'lightblue']) 215 ax.set_title('中国黄金价格指标平均值簇状柱形图', fontsize=14) 216 ax.set_xlabel('价格指标', fontsize=12) 217 ax.set_ylabel('平均值', fontsize=12) 218 ax.tick_params(axis='both', labelsize=12) 219 220 # 显示图形 221 plt.show() 222 223 # 导入matplotlib库 224 import matplotlib.pyplot as plt 225 # 设置图形大小 226 plt.figure(figsize=(10, 6)) 227 228 # 绘制折线图,分别表示最低价、最高价、收盘价和开盘价 229 plt.plot(gold['year'], gold['low'], label='最低价') 230 plt.plot(gold['year'], gold['high'], label='最高价') 231 plt.plot(gold['year'], gold['close'], label='收盘价') 232 plt.plot(gold['year'], gold['open'], label='开盘价') 233 234 # 显示图例 235 plt.legend() 236 # 设置标题,字体大小为14 237 plt.title('中国黄金价格图', fontsize=14) 238 # 设置横轴标签,字体大小为12 239 plt.xlabel('时间', fontsize=12) 240 # 设置纵轴标签,字体大小为12 241 plt.ylabel('价格', fontsize=12) 242 # 开启网格线 243 plt.grid(True) 244 # 显示图形 245 plt.show() 246 247 # 导入所需库 248 import matplotlib.pyplot as plt 249 250 # 设置中文字体和解决负号显示问题 251 plt.rcParams['font.sans-serif'] = ['SimHei'] 252 plt.rcParams['axes.unicode_minus'] = False 253 254 # 创建子图 255 fig, axs = plt.subplots(2, 2, figsize=(12, 8)) 256 257 # 最高价分布图 258 axs[0, 0].hist(gold['high'], color='orange', alpha=0.7)
259 axs[0, 0].set_title('最高价分布图', fontsize=14) 260 axs[0, 0].set_xlabel('价格', fontsize=12) 261 axs[0, 0].set_ylabel('频数', fontsize=12) 262 axs[0, 0].tick_params(axis='both', labelsize=12) 263 axs[0, 0].grid(axis='y', linestyle='--') 264 265 # 最低价分布图 266 axs[0, 1].hist(gold['low'], color='green', alpha=0.7) 267 axs[0, 1].set_title('最低价分布图', fontsize=14)
268 axs[0, 1].set_xlabel('价格', fontsize=12) 269 axs[0, 1].set_ylabel('频数', fontsize=12) 270 axs[0, 1].tick_params(axis='both', labelsize=12) 271 axs[0, 1].grid(axis='y', linestyle='--') 272 273 # 开盘价分布图 274 axs[1, 0].hist(gold['open'], color='pink', alpha=0.7) 275 axs[1, 0].set_title('开盘价分布图', fontsize=14) 276 axs[1, 0].set_xlabel('价格', fontsize=12) 277 axs[1, 0].set_ylabel('频数', fontsize=12) 278 axs[1, 0].tick_params(axis='both', labelsize=12) 279 axs[1, 0].grid(axis='y', linestyle='--') 280 281 # 收盘价分布图 282 axs[1, 1].hist(gold['close'], color='lightblue', alpha=0.7) 283 axs[1, 1].set_title('收盘价分布图', fontsize=14) 284 axs[1, 1].set_xlabel('价格', fontsize=12) 285 axs[1, 1].set_ylabel('频数', fontsize=12) 286 axs[1, 1].tick_params(axis='both', labelsize=12) 287 axs[1, 1].grid(axis='y', linestyle='--') 288 289 # 调整子图间距 290 plt.tight_layout() # 调整子图间距,使子图之间不重叠 291 292 # 显示图形 293 plt.show() # 显示绘制的图形 294 295 # 导入所需库 296 import pandas as pd 297 import matplotlib.pyplot as plt 298 299 # 设置日期列表 300 date = ['2018-01-01', '2019-01-01', '2020-01-01', '2021-01-01', '2022-01-01'] 301 vol = gold['vol'] 302 303 # 根据年份筛选数据 304 filtered_df = gold[(gold['trade_date'].dt.year >= 2018) & (gold['trade_date'].dt.year <= 2022)] 305 plt.figure(figsize=(10, 6)) 306 307 # 绘制折线图,展示中国黄金销售量对比 308 plt.plot(filtered_df['trade_date'], filtered_df['vol'], label='最低价') 309 310 # 设置图例 311 plt.legend() 312 313 # 设置标题和标签 314 plt.title('C', fontsize=14) 315 plt.xlabel('年份', fontsize=12) 316 plt.ylabel('人数', fontsize=12) 317 318 # 显示图形 319 plt.show()
总结
1.通过对黄金的大数据进行分析和挖掘,可以得到以下结论和目标达成情况:
可以得出来,销售量与黄金的价格是息息相关的,价格最低的时候销售量是最高的
此外,可以发现,开盘价接近最低价,而收盘价接近最高价,但是总体上差距并不是很大
并且随着时间增加,黄金的价格总体上也会逐渐增加
黄金的销售量有两个小高峰,一个是在250到300之间,一次是350到400之间
比较出乎意料的是在280到330之间的幅度是相较其他价格显得较低
2.在完成这个课程设计过程中获得了以下收获:
数据分析和挖掘技能是文本中提到的第一个收获。通过学习如何使用Python进行数据清洗、处理、统计分析等技术,提高了数据分析能力和编程能力。这种技能在现代社会中越来越重要,无论是对于职业发展还是实际生活都有着广泛的应用。掌握这种技能可以为个人带来更多的机会和可能性,同时也能够为相关领域的研究和应用提供有力支持。
数据可视化,通过图表、图形等方式直观地展示数据分析的结果,提高了自己的数据可视化能力。这种能力可以帮助人们更好地理解和解释数据分析的结果,使复杂的数据变得易于理解和接受。同时,数据可视化还可以为决策提供重要的参考和依据,有助于更好地制定策略和方案。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异