Orange3实战教程:可视化---线性投影

线性投影

一种结合探索性数据分析的线性投影方法。

输入

数据:输入数据集
数据子集:实例的子集
投影:自定义投影向量

输出

选中数据:从图中选中的实例
数据:新增一列标记点是否被选中的数据
成分:投影向量

该组件用于显示带有类别标签数据的线性投影,支持多种投影类型,如环形布局、线性判别分析和主成分分析。

以鸢尾花(Iris)数据集为例,初始投影显示萼片宽度和萼片长度能够较好地区分山鸢尾(Iris setosa)与其他两类,而花瓣长度则是区分变色鸢尾(Iris versicolor)和维吉尼亚鸢尾(Iris virginica)的最佳属性。

  1. 投影坐标轴与可用轴
    通过“建议特征”优化投影。此功能会对属性进行评分,并返回评分最高的属性,同时更新可视化结果。评分基于分类(准确率)或回归(均方误差)的 k-近邻分类器在二维投影上的表现,反映投影中类别的分离程度。

  2. 选择投影类型

<think>我们计划编写一个exper4-3.py程序,使用matplotlib和numpy实现图形输出。由于用户没有给出具体的图形要求,我们可以设计一个简单的示例,比如绘制正弦函数和余弦函数的图像。 步骤: 1. 导入必要的库:numpy和matplotlib 2. 使用numpy生成数据(x坐标,以及对应的sin(x)和cos(x)) 3. 使用matplotlib绘制图形,并设置标题、坐标轴标签等 4. 显示图形 下面是一个简单的代码示例: </think># exper4-3.py 程序:使用 Matplotlib 和 NumPy 实现图形输出 下面是完整的 `exper4-3.py` 程序代码,展示了如何使用 Matplotlib 和 NumPy 库生成各种常见图形: ```python import numpy as np import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties # 设置中文字体支持 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 用来正常显示中文标签 plt.rcParams[&#39;axes.unicode_minus&#39;] = False # 用来正常显示负号 def main(): # 创建数据 x = np.linspace(0, 10, 100) # 创建图表布局 plt.figure(figsize=(12, 8)) plt.subplots_adjust(hspace=0.4, wspace=0.3) # 绘制正弦函数图像 plt.subplot(2, 2, 1) plt.plot(x, np.sin(x), &#39;r-&#39;, linewidth=2) plt.title(&#39;正弦函数&#39;) plt.xlabel(&#39;x&#39;) plt.ylabel(&#39;sin(x)&#39;) plt.grid(True) # 绘制余弦函数图像 plt.subplot(2, 2, 2) plt.plot(x, np.cos(x), &#39;b--&#39;, linewidth=2) plt.title(&#39;余弦函数&#39;) plt.xlabel(&#39;x&#39;) plt.ylabel(&#39;cos(x)&#39;) plt.grid(True) # 绘制散点图 plt.subplot(2, 2, 3) x2 = np.random.rand(50) * 10 y2 = np.random.rand(50) * 10 colors = np.random.rand(50) sizes = np.random.rand(50) * 100 plt.scatter(x2, y2, c=colors, s=sizes, alpha=0.7, cmap=&#39;viridis&#39;) plt.colorbar() plt.title(&#39;随机散点图&#39;) plt.xlabel(&#39;X轴&#39;) plt.ylabel(&#39;Y轴&#39;) plt.grid(True) # 绘制柱状图 plt.subplot(2, 2, 4) labels = [&#39;Python&#39;, &#39;JavaScript&#39;, &#39;C++&#39;, &#39;Java&#39;, &#39;Go&#39;] values = [85, 78, 65, 70, 55] plt.bar(labels, values, color=[&#39;red&#39;, &#39;green&#39;, &#39;blue&#39;, &#39;orange&#39;, &#39;purple&#39;]) plt.title(&#39;编程语言受欢迎程度&#39;) plt.xlabel(&#39;编程语言&#39;) plt.ylabel(&#39;百分比(%)&#39;) # 添加整体标题 plt.suptitle(&#39;Matplotlib 和 NumPy 图形展示&#39;, fontsize=16) # 保存图像 plt.savefig(&#39;exper4-3_output.png&#39;, dpi=300, bbox_inches=&#39;tight&#39;) # 显示图表 plt.tight_layout(rect=[0, 0, 1, 0.96]) # 调整布局为整体标题留出空间 plt.show() # 生成3D曲面图 generate_3d_plot() def generate_3d_plot(): """生成三维曲面图""" fig = plt.figure(figsize=(10, 8)) ax = fig.add_subplot(111, projection=&#39;3d&#39;) # 创建数据 x = np.linspace(-5, 5, 100) y = np.linspace(-5, 5, 100) X, Y = np.meshgrid(x, y) Z = np.sin(np.sqrt(X**2 + Y**2)) * np.cos(0.5*X) # 绘制曲面 surf = ax.plot_surface(X, Y, Z, cmap=&#39;viridis&#39;, edgecolor=&#39;none&#39;, alpha=0.9) # 添加标签 ax.set_title(&#39;三维曲面: $\sin(\sqrt{x^2 + y^2}) \cdot \cos(0.5x)$&#39;) ax.set_xlabel(&#39;X轴&#39;) ax.set_ylabel(&#39;Y轴&#39;) ax.set_zlabel(&#39;Z轴&#39;) # 添加颜色条 fig.colorbar(surf, shrink=0.5, aspect=5) # 保存图像 plt.savefig(&#39;exper4-3_3d.png&#39;, dpi=300) # 显示图表 plt.tight_layout() plt.show() if __name__ == "__main__": main() ``` ## 程序功能说明 ### 1. 二维图形展示 - **正弦函数图像**:使用红色实线绘制正弦函数曲线 - **余弦函数图像**:使用蓝色虚线绘制余弦函数曲线 - **散点图**:随机生成带有颜色和大小变化的散点 - **柱状图**:展示不同编程语言的受欢迎程度 ### 2. 三维图形展示 - **三维曲面图**:绘制函数 $\sin(\sqrt{x^2 + y^2}) \cdot \cos(0.5x)$ 的三维曲面 - **颜色映射**:使用 &#39;viridis&#39; 颜色映射增强视觉效果 - **交互式视图**:支持旋转和缩放查看不同角度 ### 3. 输出选项 - **图像保存**:将生成的图像保存为高分辨率 PNG 文件 - **中文字体支持**:特别配置了中文字体显示支持 - **布局优化**:自动调整子图间距和整体布局 ## 运行结果预览 当运行此程序时,会依次显示以下图像: 1. 包含4个子图的综合图表: - 左上:正弦函数曲线 - 右上:余弦函数曲线 - 左下:随机散点图 - 右下:编程语言柱状图 2. 三维曲面图: - 展示复杂的数学函数曲面 - 支持交互式旋转查看 ## 技术要点 1. **NumPy 数据生成**: - `np.linspace()` 创建均匀间隔的数值 - `np.random.rand()` 生成随机数 - `np.meshgrid()` 创建网格坐标 2. **Matplotlib 图形绘制**: - `plt.subplot()` 创建多子图布局 - `plt.plot()` 绘制线性- `plt.scatter()` 绘制散点图 - `plt.bar()` 绘制柱状图 - 3D 投影创建三维图形 3. **可视化增强**: - 颜色映射 (`cmap`) - 透明度控制 (`alpha`) - 网格显示 (`grid`) - 颜色条 (`colorbar`) 4. **中文支持**: - 配置 matplotlib 使用中文字体 - 确保坐标轴标签和图例正确显示中文 ## 使用示例 ```bash # 安装依赖库 pip install numpy matplotlib # 运行程序 python exper4-3.py ``` 程序运行后,会在当前目录生成两个图像文件: - `exper4-3_output.png`:包含4个子图的综合图表 - `exper4-3_3d.png`:三维曲面图 同时会通过 matplotlib 的交互界面显示这些图表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

err2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值