matplotlib_study.py 989 B

1234567891011121314151617181920212223242526272829303132333435
  1. import pandas as pd
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. import seaborn as sns
  5. from datetime import datetime, timedelta
  6. # 创建示例订单簿数据
  7. times = [datetime.now() - timedelta(seconds=i) for i in range(10)]
  8. prices = np.linspace(10000, 10100, 10)
  9. bid_qtys = np.random.rand(10, 10) * 100 # 随机生成挂单数量
  10. # 创建一个DataFrame来表示订单簿数据
  11. order_book_df = pd.DataFrame(
  12. {
  13. 'time': np.repeat(times, 10),
  14. 'price': np.tile(prices, 10),
  15. 'bid_qty': bid_qtys.flatten()
  16. }
  17. )
  18. # 设置索引为时间和价格
  19. order_book_df.set_index(['time', 'price'], inplace=True)
  20. # 选择 bid_qty 列来绘制热力图
  21. heatmap_data = order_book_df['bid_qty'].unstack().T
  22. # 创建热力图
  23. plt.figure(figsize=(12, 8))
  24. sns.heatmap(heatmap_data, cmap="Blues", cbar=True, cbar_kws={'label': 'Order Quantity'})
  25. plt.title('Order Book Heatmap')
  26. plt.xlabel('Time')
  27. plt.ylabel('Price')
  28. plt.xticks(rotation=45)
  29. plt.tight_layout()
  30. plt.show()