Stkcd Accper F040201B 000001 2009-12-31 0.405969 000001 2010-12-31 0.544899 000001 2011-12-31 0.157808 000001 2012-12-31 0.392245 000001 2013-12-31 0.267555 000001 2014-12-31 0.275729 000001 2015-12-31 0.294996 000001 2016-12-31 0.248701 000001 2017-12-31 0.246629 000001 2018-12-31 NULL绘制直方图
时间: 2023-06-30 14:13:28 浏览: 204
抱歉,作为一个语言模型AI,我无法绘制直方图。但我可以告诉你如何绘制直方图。你需要将数据分为若干组,然后统计每组数据的频数。将频数作为纵坐标,组数作为横坐标,绘制柱状图即可。你可以使用Python中的Matplotlib库来绘制直方图。以下是一个示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 数据
data = [0.405969, 0.544899, 0.157808, 0.392245, 0.267555, 0.275729, 0.294996, 0.248701, 0.246629, None]
# 分组
bins = np.arange(0, 1.1, 0.1)
# 统计频数
hist, _ = np.histogram(data, bins=bins)
# 绘制直方图
plt.bar(bins[:-1], hist, width=0.1)
plt.xlabel('数据')
plt.ylabel('频数')
plt.title('直方图')
plt.show()
```
运行以上代码,即可得到直方图。
相关问题
import numpy as np import pandas as pd import os os.chdir('D:\Download') F_ = pd.read_excel('FS_Comscfd.xlsx') F = F_.iloc[2:] F = F.fillna(0) F['Tax'] = F['C001021000'] - F['C001012000'] F['LTax'] = F['Tax'].shift(1) F['chtx'] = (F['Tax'] - F['LTax'])/ F['LTax'] F = F[~F.isin([np.nan, np.inf, -np.inf]).any(1)] # F = F.dropna() F = F[['Stkcd', 'Accper', 'chtx']].reset_index(drop = True) F.to_csv("chtx_treated.csv",encoding='utf_8_sig',index = False) F
这段代码看起来是在读取一个名为 "FS_Comscfd.xlsx" 的 Excel 文件,并进行一系列的数据处理操作,最后将处理后的结果保存为 "chtx_treated.csv" 文件。
首先,代码导入了一些必要的库,如 numpy、pandas 和 os。然后,使用 `os.chdir()` 将当前工作目录更改为 "D:\Download"。
接下来,使用 `pd.read_excel()` 读取名为 "FS_Comscfd.xlsx" 的 Excel 文件,并将其存储在变量 F_ 中。
然后,进行一些数据处理操作。首先从第三行开始选择数据,并使用 `fillna(0)` 将缺失值填充为0。接着,计算 'Tax' 列的值,该列是 'C001021000' 列减去 'C001012000' 列的结果。然后创建 'LTax' 列,该列是 'Tax' 列向上移动一行。接着计算 'chtx' 列,该列是 'Tax' 列减去 'LTax' 列除以 'LTax' 列的结果。最后,使用 `~F.isin([np.nan, np.inf, -np.inf]).any(1)` 过滤掉包含 NaN、正无穷或负无穷的行。
最后,将筛选后的结果保留 'Stkcd'、'Accper' 和 'chtx' 列,并将结果保存为名为 "chtx_treated.csv" 的 CSV 文件。
如果你有更多的问题,请随时提问。
帮我用R语言写个代码,数据为"D:/Desktop/002362hwkj.xlsx",其中包含十年的日度交易数据,根据历史的Close,预测未来的股价,并将十年数据划分为训练集和测试集,分别用随机森林、长短期记忆神经网络、支持向量机来做出预测,并计算准确率,三个模型分别作时间序列图,图内容包含实际值和预测值 Stkcd Name Date Open Close Volume 002362 汉王科技 2012-01-04 11.65 12.08 7928756 002362 汉王科技 2012-01-05 11.71 11.11 5066259 002362 汉王科技 2012-01-06 10.9 11.31 3135455 002362 汉王科技 2012-01-09 11.19 11.83 3923286 这是表格的部分内容
好的,根据您的需求,我为您编写了如下代码。
首先,我们需要加载所需的包和数据:
```R
library(xlsx)
library(randomForest)
library(keras)
library(e1071)
data_path <- "D:/Desktop/002362hwkj.xlsx"
stk_data <- read.xlsx(data_path, sheetIndex = 1)
```
然后,我们将数据按时间升序排列,并将日期列转化为日期格式:
```R
stk_data$Date <- as.Date(stk_data$Date)
stk_data <- stk_data[order(stk_data$Date),]
```
接下来,我们将数据划分为训练集和测试集。由于您没有指定测试集的时间范围,这里我将最后一年的数据作为测试集:
```R
train_data <- stk_data[1:(nrow(stk_data)-252),]
test_data <- stk_data[(nrow(stk_data)-251):nrow(stk_data),]
```
然后,我们为每个模型准备数据。对于随机森林和支持向量机,我们只需要选择需要的特征并将其转化为矩阵格式。对于长短期记忆神经网络,我们需要将数据转化为时间序列格式,并将其标准化。
```R
# 随机森林和支持向量机
train_rf_svm <- train_data[,c("Open", "Close", "Volume")]
train_rf_svm <- data.matrix(train_rf_svm)
test_rf_svm <- test_data[,c("Open", "Close", "Volume")]
test_rf_svm <- data.matrix(test_rf_svm)
# 长短期记忆神经网络
train_lstm <- train_data[,c("Close")]
train_lstm <- data.matrix(train_lstm)
scaler <- preProcess(train_lstm, method = c("scale", "center"))
train_lstm <- predict(scaler, train_lstm)
test_lstm <- test_data[,c("Close")]
test_lstm <- data.matrix(test_lstm)
test_lstm <- predict(scaler, test_lstm)
train_lstm <- array(train_lstm, dim = c(nrow(train_lstm), 1, 1))
test_lstm <- array(test_lstm, dim = c(nrow(test_lstm), 1, 1))
```
接下来,我们分别训练随机森林、长短期记忆神经网络和支持向量机,并对测试集进行预测:
```R
# 随机森林
rf_model <- randomForest(train_rf_svm[,1:2], train_rf_svm[,3], ntree = 500)
rf_pred <- predict(rf_model, test_rf_svm[,1:2])
# 长短期记忆神经网络
lstm_model <- keras::keras_model_sequential()
lstm_model %>%
layer_lstm(units = 50, input_shape = c(1, 1)) %>%
layer_dense(units = 1)
lstm_model %>% compile(loss = 'mean_squared_error', optimizer = 'adam')
lstm_model %>% fit(train_lstm[,1:1,], train_lstm[,1,], epochs = 100, batch_size = 32)
lstm_pred <- predict(lstm_model, test_lstm)[,1]
# 支持向量机
svm_model <- svm(train_rf_svm[,1:2], train_rf_svm[,3], kernel = "linear")
svm_pred <- predict(svm_model, test_rf_svm[,1:2])
```
最后,我们计算三个模型的准确率,并绘制时间序列图:
```R
# 计算准确率
rf_accuracy <- sum(rf_pred == test_rf_svm[,3])/nrow(test_rf_svm)
lstm_accuracy <- sum(round(lstm_pred) == test_lstm[,1])/nrow(test_lstm)
svm_accuracy <- sum(svm_pred == test_rf_svm[,3])/nrow(test_rf_svm)
cat("随机森林准确率:", rf_accuracy, "\n")
cat("LSTM准确率:", lstm_accuracy, "\n")
cat("支持向量机准确率:", svm_accuracy, "\n")
# 绘制时间序列图
par(mfrow=c(3,1))
plot(test_data$Date, test_data$Close, type = "l", col = "blue", xlab = "", ylab = "Price")
lines(test_data$Date, rf_pred, col = "red")
legend("bottomright", legend = c("Actual", "Predicted"), col = c("blue", "red"), lty = c(1, 1))
plot(test_data$Date, test_data$Close, type = "l", col = "blue", xlab = "", ylab = "Price")
lines(test_data$Date, round(lstm_pred), col = "red")
legend("bottomright", legend = c("Actual", "Predicted"), col = c("blue", "red"), lty = c(1, 1))
plot(test_data$Date, test_data$Close, type = "l", col = "blue", xlab = "", ylab = "Price")
lines(test_data$Date, svm_pred, col = "red")
legend("bottomright", legend = c("Actual", "Predicted"), col = c("blue", "red"), lty = c(1, 1))
```
注意:由于数据未提供证券代码,代码中的模型训练和预测均基于数据的 Close 列。如果您的数据中包含多个证券的交易数据,请修改代码以适配您的数据。
阅读全文