画图的技巧

文章详细介绍了流程图的绘制规则,包括先后关系、从属关系和传递关系,并提到Visio在绘制流程图和系统框图中的应用。知识结构图强调了从属关系和思维导图的区别。此外,文章还讨论了UML类图中的各种关系,如继承、实现、依赖和关联等,并提出了绘制类图时的注意事项。

来源:https://maiya.fan/blog?id=656617556aa58e39d9301949

1 关系

1.1.先后关系

流程图使用该关系。

1.2 从属关系

知识结构图使用该关系。

1.3传递关系

系统框图使用该关系。

2 流程图

2.1 流程图绘制规则

(1) 流程方向不变,不要出现原本从上到下,又出现从下到上。
(2) 主流程占据中间位置,辅助流程为主流程的分支。
(3) 不要出现重复流程,而要不同路径通向相同流程。
(4) 箭头表示先后关系。
(5) 可能存在并行关系,即同一流程中,出现多个非判断分支,如商业发展。

2.2 visio中双击连接线可对连接线进行标注

2.3 跨职能流程图

在体现流程的同时,能体现某个步骤的执行主体是谁,也能体现多个步骤联合组成的阶段。

3 知识结构图

3.1 绘制规则

(1) 使用思维导图绘制
(2) 知识都是领域性质的,因此箭头表示从属关系。
(3) 一个领域可以属于多个领域,多个领域也可以属于一个领域。
(4) 领域用大标题,具体方法或知识点用小标题

3.2 与思维导图的区别

思维导图不支持两个标题共同产生一个标题。而在知识产生过程中,有很多情况是两种知识相结合,产生了新的知识,新知识同时属于两个领域,如深度学习与决策树结合产生了深度学习决策树。

4 系统框图

使用visio的常规中的基本框图来绘制。

5 UML图(类图)

5.1 关系

(1) 继承关系、实现关系
继承关系和实现关系专指函数的复用相关。

  1. 依赖关系、关联关系
    指对象之间调用的方式,一种是传参,一种是属性。
  2. 组合关系、聚合关系
    对象的组成关系,聚合是弱关系,如大雁和雁群,组合是强关系,如处理器和电脑。

5.2 绘制规则

(1) 关联关系的类不应该出现在成员变量里
(2) 构造方法不应该出现在成员变量里
(3) 类图不应该包含主函数的类

Python 提供了各种各样的工具和库,可以在程序执行中创建可视化图形,以下是一些 Python 画图技巧: ### 图形清晰度与保存设置 - **调整图片清晰度**:可以通过设置 `dpi`(每英寸点数)来调整图片的清晰度,`dpi` 值越高,图片越清晰。 ```python import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) y = np.sin(x) plt.plot(x, y) plt.savefig('plot.png', dpi=300) ``` - **图片保存格式设置**:`savefig` 函数可以指定保存的文件格式,如 `png`、`jpg`、`svg` 等。 ```python plt.savefig('plot.svg') ``` ### 字体与符号设置 - **支持中文字体设置**:在使用中文标题或标签时,需要设置支持中文的字体。 ```python import matplotlib.pyplot as plt plt.rcParams['font.family'] = 'SimHei' plt.plot([1, 2, 3], [4, 5, 6]) plt.title('中文标题') plt.show() ``` - **特殊符号的 LaTeX 语法支持**:Matplotlib 支持 LaTeX 语法来显示特殊符号。 ```python import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) y = np.sin(x) plt.plot(x, y) plt.title(r'$\sin(x)$ 曲线') plt.show() ``` ### 颜色设置 - **使用颜色名称指定颜色**:可以使用英文颜色名称来指定绘图对象的颜色。 ```python import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) y = np.sin(x) plt.plot(x, y, color='red') plt.show() ``` - **使用十六进制 RGB 值指定颜色**:通过十六进制 RGB 值来精确指定颜色。 ```python import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) y = np.sin(x) plt.plot(x, y, color='#FF0000') plt.show() ``` - **渐变色设置**:可以使用 `matplotlib` 的 `LinearSegmentedColormap` 来创建渐变色。 ```python import matplotlib.pyplot as plt import numpy as np from matplotlib.colors import LinearSegmentedColormap # 创建渐变色映射 colors = [(1, 0, 0), (0, 1, 0), (0, 0, 1)] cmap_name = 'my_list' cm = LinearSegmentedColormap.from_list(cmap_name, colors, N=100) x = np.linspace(0, 10, 100) y = np.sin(x) plt.scatter(x, y, c=y, cmap=cm) plt.colorbar() plt.show() ``` ### 图形元素调整 - **调整标题位置和角度**:可以使用 `loc` 参数调整标题的位置,使用 `rotation` 参数调整标题的角度。 ```python import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) y = np.sin(x) plt.plot(x, y) plt.title('标题', loc='left', rotation=45) plt.show() ``` - **图框的调整**:可以调整图框的线条宽度、颜色等属性。 ```python import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) y = np.sin(x) plt.plot(x, y) ax = plt.gca() for spine in ax.spines.values(): spine.set_linewidth(2) spine.set_color('red') plt.show() ``` - **图框背景颜色设置**:可以设置图框的背景颜色。 ```python import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) y = np.sin(x) plt.plot(x, y) ax = plt.gca() ax.set_facecolor('lightgray') plt.show() ``` - **透明度设置**:可以通过 `alpha` 参数设置绘图对象的透明度。 ```python import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) y = np.sin(x) plt.plot(x, y, alpha=0.5) plt.show() ``` ### 不同图形绘制 - **绘制折线图**:使用 `plot` 函数绘制折线图。 ```python import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) y = np.sin(x) plt.plot(x, y) plt.show() ``` - **绘制面积图**:使用 `fill_between` 函数绘制面积图。 ```python import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) y = np.sin(x) plt.fill_between(x, y) plt.show() ``` - **绘制饼图**:使用 `pie` 函数绘制饼图。 ```python import matplotlib.pyplot as plt sizes = [15, 30, 45, 10] labels = ['A', 'B', 'C', 'D'] plt.pie(sizes, labels=labels) plt.show() ``` - **绘制气泡图**:使用 `scatter` 函数绘制气泡图,通过 `s` 参数指定气泡的大小。 ```python import matplotlib.pyplot as plt import numpy as np x = np.random.rand(50) y = np.random.rand(50) sizes = 1000 * np.random.rand(50) plt.scatter(x, y, s=sizes) plt.show() ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

BoilingHotPot

听说打赏我的人,都发顶会顶刊了

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

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

打赏作者

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

抵扣说明:

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

余额充值