Python 绘制基金和股票数据的季度变化对比散点图

【愚公系列】《Python网络爬虫从入门到精通》042-Matplotlib 常用图表的绘制 📊【小白进阶必备!手把手教你玩转Matplotlib数据可视化】🚀大家好!今天我们将开启Python数据分析的魔法之旅——只需一杯咖啡的时间,你就能掌握7种Matplotlib核心图表的绘制技巧!无论你是想用折线图追踪股票走势,还是用热力图分析用户行为,这篇超实用的指南都将成为你的私人可视化工具箱。 阅读详情

背景

  • 我们有两种数据(基金和股票),两个时间点(20200630和20200930),以及三个特殊变量。
  • 我们需要绘制6幅图(3个变量 * 2个时间点)在一个画布上,每个图都包含基金和股票的对比,并且横向对比季度变化(即0630和0930的对比)。由于基金和股票的坐标系不同,我们需要左右两个纵轴分别表示基金和股票。
  • 我们将使用seaborn包和莫兰迪色系,由于莫兰迪色系不是matplotlib内置的,这里我们假设使用seaborn的柔和颜色。

步骤

  • 准备数据:假设我们有两个DataFrame,分别代表两个时间点的数据,每个DataFrame都有基金和股票的数据,并且有相同的行索引(1-1000)和列(变量)。基金和股票的数据是分开的,所以我们需要分别从两个DataFrame中提取基金和股票的三个特殊变量。

  • 我们假设三个特殊变量的列名已知,例如对于基金,变量名为[‘fund_var1’, ‘fund_var2’, ‘fund_var3’],对于股票,变量名为[‘stock_var1’, ‘stock_var2’, ‘stock_var3’]。

  • 创建画布:6幅图,我们可以安排成2行3列,因为有两个时间点(0630和0930)和三个变量。每个子图中,我们将绘制两个时间点的基金和股票的数据。但是注意,每个子图对应一个变量,横轴是时间(两个时间点),由于基金和股票的数据量级可能不同,所以我们需要双y轴:左边是基金,右边是股票。

  • 为了区分两个时间点,我们可以用不同的颜色(莫兰迪色系中的两种颜色)分别表示0630和0930。

  • 为了区分基金和股票,我们使用同一个横坐标(两个时间点),但是纵坐标分别用左右轴。

  • 我们将在每个子图的右上角添加图例,最后保存为pdf和png格式。

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
from pathlib import Path

# 设置中文字体和莫兰迪色系
plt.rcParams['font.sans-serif'] = ['SimHei', 'Arial Unicode MS', 'DejaVu Sans']
plt.rcParams['font.family'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False

# 创建莫兰迪色系
morandi_colors = ['#9B9B9B', '#D8BFAA', '#8FAADC', '#A8D8B9', '#F4A582', '#B39DDB']

# 创建模拟数据
np.random.seed(42)  # 保证可重复性

# 生成模拟数据
dates = pd.date_range('2022-01-01', periods=1000, freq='D')
fund_data_0630 = pd.DataFrame({
    'var1': np.random.normal(100, 15, 1000),
    'var2': np.random.normal(50, 8, 1000),
    'var3': np.random.normal(200, 25, 1000),
    'volume': np.random.uniform(1000, 5000, 1000)
}, index=range(1, 1001))

fund_data_0930 = pd.DataFrame({
    'var1': np.random.normal(105, 16, 1000),
    'var2': np.random.normal(52, 9, 1000),
    'var3': np.random.normal(210, 26, 1000),
    'volume': np.random.uniform(1200, 5500, 1000)
}, index=range(1, 1001))

stock_data_0630 = pd.DataFrame({
    'var1': np.random.normal(25, 5, 1000),
    'var2': np.random.normal(15, 3, 1000),
    'var3': np.random.normal(80, 12, 1000),
    'volume': np.random.uniform(50000, 200000, 1000)
}, index=range(1, 1001))

stock_data_0930 = pd.DataFrame({
    'var1': np.random.normal(26, 5.5, 1000),
    'var2': np.random.normal(16, 3.2, 1000),
    'var3': np.random.normal(85, 13, 1000),
    'volume': np.random.uniform(55000, 220000, 1000)
}, index=range(1, 1001))

# 创建输出目录
output_dir = Path('financial_plots')
output_dir.mkdir(exist_ok=True)

# 创建图形和子图
fig, axes = plt.subplots(2, 3, figsize=(18, 12))
fig.suptitle('基金与股票季度变化对比分析\n(0630 vs 0930)', fontsize=16, fontweight='bold', y=0.95)

# 定义三个特殊变量
special_vars = ['var1', 'var2', 'var3']
quarters = ['0630', '0930']

# 绘制散点图
for i, var in enumerate(special_vars):
    # 第一行:0630季度的对比
    ax1 = axes[0, i]
    
    # 基金数据 - 左轴
    fund_scatter1 = ax1.scatter(fund_data_0630.index, fund_data_0630[var], 
                               c=morandi_colors[0], alpha=0.7, s=30, 
                               label='基金 0630', marker='o')
    
    # 股票数据 - 右轴
    ax1_right = ax1.twinx()
    stock_scatter1 = ax1_right.scatter(stock_data_0630.index, stock_data_0630[var], 
                                      c=morandi_colors[1], alpha=0.7, s=30, 
                                      label='股票 0630', marker='s')
    
    ax1.set_title(f'{var} - 0630季度', fontsize=12, fontweight='bold')
    ax1.set_xlabel('序列索引')
    ax1.set_ylabel('基金数值', color=morandi_colors[0])
    ax1_right.set_ylabel('股票数值', color=morandi_colors[1])
    
    # 设置坐标轴颜色
    ax1.tick_params(axis='y', labelcolor=morandi_colors[0])
    ax1_right.tick_params(axis='y', labelcolor=morandi_colors[1])
    
    # 第二行:0930季度的对比
    ax2 = axes[1, i]
    
    # 基金数据 - 左轴
    fund_scatter2 = ax2.scatter(fund_data_0930.index, fund_data_0930[var], 
                               c=morandi_colors[2], alpha=0.7, s=30, 
                               label='基金 0930', marker='o')
    
    # 股票数据 - 右轴
    ax2_right = ax2.twinx()
    stock_scatter2 = ax2_right.scatter(stock_data_0930.index, stock_data_0930[var], 
                                      c=morandi_colors[3], alpha=0.7, s=30, 
                                      label='股票 0930', marker='s')
    
    ax2.set_title(f'{var} - 0930季度', fontsize=12, fontweight='bold')
    ax2.set_xlabel('序列索引')
    ax2.set_ylabel('基金数值', color=morandi_colors[2])
    ax2_right.set_ylabel('股票数值', color=morandi_colors[3])
    
    # 设置坐标轴颜色
    ax2.tick_params(axis='y', labelcolor=morandi_colors[2])
    ax2_right.tick_params(axis='y', labelcolor=morandi_colors[3])

# 添加整体图例
handles = [
    plt.Line2D([0], [0], marker='o', color='w', markerfacecolor=morandi_colors[0], markersize=8, label='基金 0630'),
    plt.Line2D([0], [0], marker='s', color='w', markerfacecolor=morandi_colors[1], markersize=8, label='股票 0630'),
    plt.Line2D([0], [0], marker='o', color='w', markerfacecolor=morandi_colors[2], markersize=8, label='基金 0930'),
    plt.Line2D([0], [0], marker='s', color='w', markerfacecolor=morandi_colors[3], markersize=8, label='股票 0930')
]

fig.legend(handles=handles, loc='upper right', bbox_to_anchor=(0.98, 0.98), 
           frameon=True, fancybox=True, shadow=True, ncol=2)

# 调整布局
plt.tight_layout()
plt.subplots_adjust(top=0.9)

# 保存图片
plt.savefig(output_dir / 'fund_stock_comparison.pdf', dpi=300, bbox_inches='tight')
plt.savefig(output_dir / 'fund_stock_comparison.png', dpi=300, bbox_inches='tight')

print(f"图片已保存到: {output_dir.absolute()}")
print("生成的文件:")
print(f"  - {output_dir / 'fund_stock_comparison.pdf'}")
print(f"  - {output_dir / 'fund_stock_comparison.png'}")

plt.show()

# 添加统计分析
print("\n统计分析:")
print("=" * 50)
for var in special_vars:
    print(f"\n变量 {var}:")
    print(f"基金 0630: 均值={fund_data_0630[var].mean():.2f}, 标准差={fund_data_0630[var].std():.2f}")
    print(f"基金 0930: 均值={fund_data_0930[var].mean():.2f}, 标准差={fund_data_0930[var].std():.2f}")
    print(f"股票 0630: 均值={stock_data_0630[var].mean():.2f}, 标准差={stock_data_0630[var].std():.2f}")
    print(f"股票 0930: 均值={stock_data_0930[var].mean():.2f}, 标准差={stock_data_0930[var].std():.2f}")

主要特点

运行此代码将生成一个包含6个散点图的综合对比分析,清晰地展示基金和股票数据在不同季度和不同变量上的变化趋势。

模块化分离

数据生成部分

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
from pathlib import Path

def generate_financial_data():
    """
    生成模拟的基金和股票季度数据
    """
    np.random.seed(42)  # 保证可重复性
    
    # 生成0630季度数据
    fund_data_0630 = pd.DataFrame({
        'var1': np.random.normal(100, 15, 1000),
        'var2': np.random.normal(50, 8, 1000),
        'var3': np.random.normal(200, 25, 1000),
        'volume': np.random.uniform(1000, 5000, 1000),
        'returns': np.random.normal(0.05, 0.02, 1000)
    }, index=range(1, 1001))
    
    fund_data_0930 = pd.DataFrame({
        'var1': np.random.normal(105, 16, 1000),
        'var2': np.random.normal(52, 9, 1000),
        'var3': np.random.normal(210, 26, 1000),
        'volume': np.random.uniform(1200, 5500, 1000),
        'returns': np.random.normal(0.06, 0.025, 1000)
    }, index=range(1, 1001))
    
    stock_data_0630 = pd.DataFrame({
        'var1': np.random.normal(25, 5, 1000),
        'var2': np.random.normal(15, 3, 1000),
        'var3': np.random.normal(80, 12, 1000),
        'volume': np.random.uniform(50000, 200000, 1000),
        'returns': np.random.normal(0.08, 0.03, 1000)
    }, index=range(1, 1001))
    
    stock_data_0930 = pd.DataFrame({
        'var1': np.random.normal(26, 5.5, 1000),
        'var2': np.random.normal(16, 3.2, 1000),
        'var3': np.random.normal(85, 13, 1000),
        'volume': np.random.uniform(55000, 220000, 1000),
        'returns': np.random.normal(0.09, 0.035, 1000)
    }, index=range(1, 1001))
    
    return {
        'fund_0630': fund_data_0630,
        'fund_0930': fund_data_0930,
        'stock_0630': stock_data_0630,
        'stock_0930': stock_data_0930
    }

def print_data_summary(data_dict):
    """
    打印数据摘要统计信息
    """
    print("数据摘要统计:")
    print("=" * 50)
    
    for data_name, data in data_dict.items():
        print(f"\n{data_name}:")
        print(f"  形状: {data.shape}")
        print(f"  变量: {list(data.columns)}")
        print(f"  索引范围: {data.index.min()} - {data.index.max()}")
        
        # 打印前三个特殊变量的统计信息
        for var in ['var1', 'var2', 'var3']:
            if var in data.columns:
                print(f"  {var}: 均值={data[var].mean():.2f}, 标准差={data[var].std():.2f}")

绘图函数部分

def create_comparison_plots(data_dict, special_vars=None, output_dir='financial_plots'):
    """
    创建基金和股票季度变化对比散点图
    
    参数:
    - data_dict: 包含四个数据集的字典
    - special_vars: 要绘制的特殊变量列表
    - output_dir: 输出目录名称
    """
    # 设置中文字体和莫兰迪色系
    plt.rcParams['font.sans-serif'] = ['SimHei', 'Arial Unicode MS', 'DejaVu Sans']
    plt.rcParams['axes.unicode_minus'] = False
    
    # 莫兰迪色系
    morandi_colors = ['#9B9B9B', '#D8BFAA', '#8FAADC', '#A8D8B9', '#F4A582', '#B39DDB']
    
    # 默认的特殊变量
    if special_vars is None:
        special_vars = ['var1', 'var2', 'var3']
    
    # 创建输出目录
    output_path = Path(output_dir)
    output_path.mkdir(exist_ok=True)
    
    # 创建图形和子图
    fig, axes = plt.subplots(2, 3, figsize=(18, 12))
    fig.suptitle('基金与股票季度变化对比分析\n(0630 vs 0930)', fontsize=16, fontweight='bold', y=0.95)
    
    # 提取数据
    fund_0630 = data_dict['fund_0630']
    fund_0930 = data_dict['fund_0930']
    stock_0630 = data_dict['stock_0630']
    stock_0930 = data_dict['stock_0930']
    
    # 绘制散点图
    for i, var in enumerate(special_vars):
        # 第一行:0630季度的对比
        ax1 = axes[0, i]
        
        # 基金数据 - 左轴
        fund_scatter1 = ax1.scatter(fund_0630.index, fund_0630[var], 
                                   c=morandi_colors[0], alpha=0.7, s=30, 
                                   label='基金 0630', marker='o')
        
        # 股票数据 - 右轴
        ax1_right = ax1.twinx()
        stock_scatter1 = ax1_right.scatter(stock_0630.index, stock_0630[var], 
                                          c=morandi_colors[1], alpha=0.7, s=30, 
                                          label='股票 0630', marker='s')
        
        ax1.set_title(f'{var} - 0630季度', fontsize=12, fontweight='bold')
        ax1.set_xlabel('序列索引')
        ax1.set_ylabel('基金数值', color=morandi_colors[0])
        ax1_right.set_ylabel('股票数值', color=morandi_colors[1])
        
        # 设置坐标轴颜色
        ax1.tick_params(axis='y', labelcolor=morandi_colors[0])
        ax1_right.tick_params(axis='y', labelcolor=morandi_colors[1])
        
        # 第二行:0930季度的对比
        ax2 = axes[1, i]
        
        # 基金数据 - 左轴
        fund_scatter2 = ax2.scatter(fund_0930.index, fund_0930[var], 
                                   c=morandi_colors[2], alpha=0.7, s=30, 
                                   label='基金 0930', marker='o')
        
        # 股票数据 - 右轴
        ax2_right = ax2.twinx()
        stock_scatter2 = ax2_right.scatter(stock_0930.index, stock_0930[var], 
                                          c=morandi_colors[3], alpha=0.7, s=30, 
                                          label='股票 0930', marker='s')
        
        ax2.set_title(f'{var} - 0930季度', fontsize=12, fontweight='bold')
        ax2.set_xlabel('序列索引')
        ax2.set_ylabel('基金数值', color=morandi_colors[2])
        ax2_right.set_ylabel('股票数值', color=morandi_colors[3])
        
        # 设置坐标轴颜色
        ax2.tick_params(axis='y', labelcolor=morandi_colors[2])
        ax2_right.tick_params(axis='y', labelcolor=morandi_colors[3])
    
    # 添加整体图例
    handles = [
        plt.Line2D([0], [0], marker='o', color='w', markerfacecolor=morandi_colors[0], 
                  markersize=8, label='基金 0630'),
        plt.Line2D([0], [0], marker='s', color='w', markerfacecolor=morandi_colors[1], 
                  markersize=8, label='股票 0630'),
        plt.Line2D([0], [0], marker='o', color='w', markerfacecolor=morandi_colors[2], 
                  markersize=8, label='基金 0930'),
        plt.Line2D([0], [0], marker='s', color='w', markerfacecolor=morandi_colors[3], 
                  markersize=8, label='股票 0930')
    ]
    
    fig.legend(handles=handles, loc='upper right', bbox_to_anchor=(0.98, 0.98), 
               frameon=True, fancybox=True, shadow=True, ncol=2)
    
    # 调整布局
    plt.tight_layout()
    plt.subplots_adjust(top=0.9)
    
    # 保存图片
    pdf_path = output_path / 'fund_stock_comparison.pdf'
    png_path = output_path / 'fund_stock_comparison.png'
    
    plt.savefig(pdf_path, dpi=300, bbox_inches='tight')
    plt.savefig(png_path, dpi=300, bbox_inches='tight')
    
    print(f"图片已保存到: {output_path.absolute()}")
    print(f"生成的文件:")
    print(f"  - {pdf_path}")
    print(f"  - {png_path}")
    
    plt.show()
    
    return fig

def create_advanced_plots(data_dict, special_vars=None, output_dir='financial_plots'):
    """
    创建更高级的对比图表(可选功能)
    """
    if special_vars is None:
        special_vars = ['var1', 'var2', 'var3']
    
    # 这里可以添加其他类型的图表
    # 比如箱线图、密度图等
    
    print("高级图表功能已准备就绪")

主程序部分

def main():
    """
    主函数:生成数据并创建图表
    """
    # 1. 生成数据
    print("正在生成模拟数据...")
    financial_data = generate_financial_data()
    
    # 2. 打印数据摘要
    print_data_summary(financial_data)
    
    # 3. 创建对比图表
    print("\n正在创建对比图表...")
    fig = create_comparison_plots(
        data_dict=financial_data,
        special_vars=['var1', 'var2', 'var3'],
        output_dir='financial_analysis_output'
    )
    
    # 4. 可选:创建高级图表
    # create_advanced_plots(financial_data)
    
    print("\n程序执行完成!")

# 运行主程序
if __name__ == "__main__":
    main()
用Python分析SEC 13F机构持仓:从爬虫到调仓地图全攻略 金融数据分析中,机构持仓变动一直是市场关注的焦点。SEC要求大型投资机构每季度披露13F报告,为研究者提供了一份公开、标准化的数据源。通过Python爬虫技术,我们可以从SEC EDGAR系统高效获取这些数据,并结合XML解析与Pandas数据处理,对季度持仓进行对比分析。本文从金融数据获取的基础流程讲起,介绍如何利用Python自动化完成数据下载、清洗与结构化处理,进而通过数据可视化技术呈现机构调仓动向。无论是关注量化投资、市场资金流向,还是想掌握金融数据挖掘实战技能,都能从中获得完整的工程实践路径。文章 阅读详情

相关推荐

趋势可视化图表全解析:从折线图到热力图,精准呈现数据规律

数据可视化是数据分析与商业智能的核心环节,其核心价值在于将抽象数据转化为直观的视觉信息,辅助决策。其基本原理在于利用人类视觉系统对形状、颜色和模式的快速感知能力,高效传递数据中蕴含的规律、关联与异常。在众多可视化目标中,揭示数据随时间或其他连续变量的变化规律——即趋势分析,具有极高的技术价值,它是连接历史数据与未来预测的关键桥梁,广泛应用于业务监控、市场分析、性能预警等场景。要实现有效的趋势洞察,关键在于根据数据特性和分析目标,精准选用图表类型。例如,折线图擅长展现连续变化,是时间序列分析的基石;面积图则能

413

matplotlib 散点图_数据可视化 | Python绘图,我只用Matplotlib

Matplotlib是一个主要用于绘制二维图形的Python库。数据可视化是数据分析的重要环节,借助图形能够更加直观地表达出数据背后的“东西”。Matplolib最初主要模仿Matlab的画图命令,但是它是独立于Matlab的,可以自由、免费使用的绘图包。Matplotlib依赖NumPy库可以提供出色的绘图能力。Matplotlib的官网地址为:http://matplotlib.o...

weixin_39811101的博客 537

Python Pyecharts面试题及参考答案

为了绘制对比某品牌各季度销量与库存的柱状图,可借助 Pyecharts 库。首先,生成随机数据模拟各季度的销量和库存情况。接着,创建柱状图对象,将数据添加到图表中,并设置好主标题、副标题以及自定义颜色。# 生成随机数据seasons = ["第一季度", "第二季度", "第三季度", "第四季度"]# 创建柱状图bar = (Bar().add_yaxis("销量", sales, color="#5793f3")

大模型大数据攻城狮的专栏 1118

Python的可视化散点图,折线图,条形图

通过array转换成numpy格式 import numpy as np a = [1, 2, 3, 4] x1 = np.array(a) Numpy内生函数转化 x = np.arange(5) print(x) 从硬盘中读取 delimiter=’,'用逗号隔开,skiprows=1跳过第一行 ,usecols=(1, 4, 6)选取1,4,6列,unpack=True 把四列数据分开 open, close, v = np.loadtxt('000001.csv', delimiter=','

qq_41782791的博客 770

Python数据可视化实战:50个可视化作品轻松掌握

数据可视化是一种将数据以图形的方式表现出来的技术,它能够将复杂的数据集转化为直观的图像,使观察者能够快速理解数据的含义和模式。这不仅仅是将数据变为图形这么简单,更是一种艺术和科学的结合,要求设计师和分析师在准确性和美学之间找到平衡。Seaborn 的高级特性包括能够快速绘制多个统计图表,以及提供丰富的配色方案、样式和主题。Seaborn 还内置了一些用于统计分析的绘图函数,如factorplotboxplot和swarmplot等,可以很方便地生成复杂的统计图表。

weixin_30598047的博客 870

从0开始部署基础的AlwaysOn

在这个快餐文化盛行的时代,应该没多少人真的会沉下心来看理论和具体步骤,加上我自己也需要一篇可以扩展的快速搭建环境的指引,所以特别写了这篇文章。 我们在这里要做的事情有以下几个:安装环境。包括虚拟机和网络配置等。安装Windows域、配置必要的账号密码及功能。搭建域环境并进行配置。安装配置Windows Server Failover Cluster(WSFC)。安装SQL Server。配置Alw

MVP黄钊吉(發糞塗牆) 7577

matplotlib 对称图_数据可视化 | Python绘图,我只用Matplotlib

Matplotlib是一个主要用于绘制二维图形的Python库。数据可视化是数据分析的重要环节,借助图形能够更加直观地表达出数据背后的“东西”。Matplolib最初主要模仿Matlab的画图命令,但是它是独立于Matlab的,可以自由、免费使用的绘图包。Matplotlib依赖NumPy库可以提供出色的绘图能力。Matplotlib的官网地址为:http://matplotlib.o...

weixin_28756833的博客 885

Win10无外网热点搭建全指南:纯局域网通信与设备互联

热点并不是只有共享上网一种用途。在很多工程与办公场景中,我们需要的是让手机、笔记本、开发板等设备临时组成一个纯内网,完成文件传输、端口调试或局域网联机,而不需要任何外网出口。Win10笔记本在不连接互联网的状态下,借助系统移动热点或netsh承载网络,完全可以创建一个无外网热点,实现设备间二层互通。其核心在于利用SoftAP建立虚拟无线接入点,并绕开或禁用ICS的NAT转发。掌握这一技术,可在会议、出差、物联网调试等场景中快速搭建临时局域网,无需额外路由器。本文详细梳理三种实现路径、操作步骤及常见故障排查,

weixin_29230773的博客 239

Python数据可视化入门:用Pyecharts绘制交互式折线图

数据可视化是将抽象数据转化为直观图形的技术,其核心原理是通过视觉编码(如位置、长度、颜色)映射数据维度,帮助人们快速识别模式、趋势和异常。在Python生态中,Pyecharts作为ECharts的Python接口,凭借其出色的交互性和默认美观的样式,成为快速实现专业级可视化的利器。它特别适合处理JSON等结构化数据,能够轻松完成从数据解析到图表渲染的完整流程。对于数据分析、业务监控和报告展示等场景,掌握Pyecharts绘制折线图等基础图表,是构建数据驱动决策能力的关键一步。本文将以折线图为例,详解如何利

weixin_33978044的博客 563

基于Codex/Claude Code的学术技能包:13个Skill实现科研全流程自动化

写论文最头疼的是什么?是面对海量文献无从下手,还是实验数据一团乱麻,或者是好不容易有了结果,却卡在写作和格式调整上?如果你也经历过从选题到投稿的完整科研周期,就会明白每个环节都可能消耗大量时间精力。今天要分享的这套工具链,正是为了解决这些痛点而生——基于 Codex 和 Claude Code 平台的学术技能包(Academic Skills),它通过 13 个精心设计的 Skill,将一篇论文从 0 到 1 的全流程自动化、标准化,让你能更专注于研究本身。 这套技能包并非单一工具,而是一个覆盖文献阅读、数

weixin_33979203的博客 546

CANdb++实战:5步搞定汽车电子DBC文件创建(附信号映射技巧)

本文详细介绍了使用CANdb++高效创建汽车电子DBC文件的五步实战流程,涵盖信号批量创建、报文关联、节点映射等核心技巧。文章重点解析了信号映射中的Motorola/Intel格式选择、多路复用信号处理等高级应用,并提供了从通信矩阵到可测试DBC的完整案例,帮助工程师大幅提升工作效率。

ss78901的博客 946

利用Python解析SEC EDGAR 13F数据,绘制机构调仓热力图

在投资研究和量化分析中,理解顶级机构的持仓变化是把握市场方向的重要途径。每季度提交的13F文件是机构持仓的公开数据源,其中包含详细的股票持有信息。这些数据由SEC EDGAR系统发布,通常以XML或文本格式存储,原始文件需要经过技术手段才能转化为可用的结构化数据。Python作为数据分析的主流语言,能够高效完成13F文件的批量下载、XML解析、数据清洗与调仓对比。通过计算股票的增持、减持、新进与清仓,可以观察资金在AI、算力等板块间的迁移。基于CUSIP的匹配与市值变化可视化,能够生成直观的“资金流向地图”

weixin_33978044的博客 370

相位相关匹配法的opencv C++实现

这一段就是PCIAM算法的核心了,计算两幅图像的峰值相关矩阵,也是完全按照matlab移植过来的,但是后面几行,是为了筛选一些不可能存在的情况,比如边缘处的完全重合,或者只有一行,或者一列重合等等情况,由于PCIAM算法在边缘处的响应值高,所以在一些场景下可能是一种干扰,所以进行了剔除,当然可以不剔除,就是对后期的峰值选取会有影响。头文件,以及各类函数,还有主函数,第一次独立的写这种分文件类型的项目,写的拉跨还请包涵,以及当然可以转成类的形式,但感觉有点小麻烦,后期再修改吧。

qq_43616651的博客 4267

数据可视化入门指南

数据可视化是将数据以图形或图表等直观形式展现出来的过程,它隶属于信息可视化领域。人类视觉系统对图形的处理能力远超对文字和数字的处理能力,通过可视化手段,我们能够迅速捕捉到数据中的关键信息,比如模式的识别、趋势的判断以及异常值的发现。优秀的数据可视化作品不仅能清晰呈现数据内涵,还能提升决策的精准度与效率。数据可视化是一座连接数据与智慧的桥梁,它赋予数据以生命,让我们能够以直观、高效的方式理解和解读数据背后的故事。

jiangff66的博客 1014

SoC验证新思路:除了UVM仿真,你还可以试试Cadence JasperGold的形式化验证

本文深入探讨了Cadence JasperGold形式化验证在SoC设计中的创新应用,对比传统UVM仿真验证,详细解析了其数学穷尽性验证优势。通过实战案例展示了JasperGold在总线协议、时钟域交叉等关键场景的验证方法,并提供了混合验证流程设计与效能优化方案,帮助工程师提升验证效率30%以上。

weixin_30566063的博客 123

ISO13849功能安全从入门到精通(3):安全功能及其对降低风险的贡献4

例如,如果机器必须在有限速度下运行时进行设置,那么在低加速度值下进行设置时,参数P1将是正确的选择:随着危险缓慢出现并给予足够的运动自由,操作员将能够移出危险区域。例如,在无故障的条件下,在操作者的手的方向移动的滚子不能陷住它。在所有其他情况下,F1是正确的选择,前提是危险暴露的持续时间不超过机器总操作时间的1/20。需求来源于必要的风险降低。由于这些考虑而降低的PLr在任何情况下都不得低于通过比较方式考虑的机器的PLr,因为并不能从事故发生率低和严重程度低得出实施的安全功能提供的安全水平高于要求。

wdconan001的博客 837

Python数据可视化创意分享

Python 有许多强大的数据可视化库,如 Matplotlib、Seaborn、Plotly 等,能创造出丰富多样且具创意的数据可视化效果。

数字魔方操控师的博客 555

(考研湖科大教书匠计算机网络)第四章网络层-第三节3、4:划分子网的IPv4地址和无分类IP地址

子网掩码: 32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号子网掩码使用连续的比特1来对应网络号和子网号子网掩码使用连续的比特0来对应主机号将划分子网的IPv4地址与其相应的子网掩码进行逻辑与运算就可得到IPv4地址所在子网的网络地址如下图。

快乐江湖的博客 1351

Python数据分析(十一):数据可视化与 Matplotlib

本文介绍了数据可视化的基本概念、核心价值及常见图表类型,并深入解析了Python可视化库Matplotlib的设计原理与使用接口。主要内容包括:1. 数据可视化本质 2. 七种核心图表 3. 优秀图表标准 4. Matplotlib解析

cui_ruicheng的博客 231

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

第一章 数据可视化和matplotlib

​ matplotlib是一个由John D.Hunter等人员开发的、主要用于绘制2D图表的Python库。matplotlib支持numpy、pandas的数据结构,具有绘制丰富的图表、定制图表元素或样式的功能。matplotlib 还可用于绘制一些3D图表。​ matplotlib实际上是一个面向对象的绘图库,它所绘制的图标元素均对应一个对象。matplotlib官网。pyplot API。

z_kakaya的博客 1373

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

matplotlib

python数据可视化分析–matplotlib matplotlib是基于python语言的开源项目,为python提供了一个数据绘图包。

weixin_45540546的博客 271

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Python数据可视化入门:用Pyecharts绘制交互式折线图完整指南

数据可视化是数据分析与呈现的核心技术,通过将抽象数据转化为直观图表,帮助人们快速识别模式、趋势和异常。其基本原理在于利用视觉编码(如位置、长度、颜色)映射数据维度,从而降低认知负荷,提升信息传递效率。在技术价值层面,优秀的可视化不仅能辅助决策,还能驱动数据洞察,是数据科学和商业智能的关键环节。应用场景广泛覆盖业务监控、趋势分析、性能观测等领域。本文聚焦于最基础的折线图类型,它特别适用于展示时间序列等连续变量的变化趋势。针对Web报表和交互式分析场景,我们选用Pyecharts这一工具,它基于ECharts前

weixin_34160277的博客 303

【Python】Matplotlib核心函数实战:从基础图表到高级定制

本文详细介绍了Python中Matplotlib库的核心函数使用,从基础图表绘制到高级定制技巧。通过实战代码示例,展示了折线图、散点图、柱状图和直方图的绘制方法,并深入讲解了多子图布局、样式美化和高级标注等高级功能,帮助读者快速掌握数据可视化技能。

weixin_30770783的博客 452

数据可视化:让数据 “说话”

Matplotlib 是 Python 生态系统中最为基础且广泛使用的绘图库,它为 Python 用户提供了丰富而灵活的绘图函数,几乎可以绘制出各种类型的图表,是众多高级可视化库的基石。凭借其强大的定制能力,开发者可以通过编写代码对图表的每一个细节进行精确控制,满足各种个性化的可视化需求。

2301_80925040的博客 1454

Excel数据可视化:从基础图表到专业呈现的完整指南

数据可视化是数据分析与建模中不可或缺的一环,其核心在于将抽象数据转化为直观图形,以揭示模式、趋势和关联。从原理上讲,它依赖于人类视觉系统对形状、颜色和位置的快速感知能力,从而超越纯数字表格,实现信息的高效传递。在技术价值层面,优秀的数据可视化能显著提升数据探索效率、辅助决策并增强报告说服力。其应用场景广泛,从商业智能报告到学术研究,从日常运营监控到复杂的数学建模初步分析,都离不开它。本文聚焦于最普及的工具Excel,深入探讨如何利用其强大的图表功能,结合数据透视表、动态图表等高级技巧,避开常见陷阱,制作出既

weixin_30487201的博客 999
上一篇: Python Access:删除数据库中指定的表和查询
下一篇: Python 比较两个 dataframe 差异并输出结果
偷心伊普西隆
博客等级 码龄7年 511粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值