visualize-ml / book2_beauty-of-data-visualization Goto Github PK
View Code? Open in Web Editor NEWBook_2_《可视之美》 | 鸢尾花书:从加减乘除到机器学习,欢迎批评指正
Book_2_《可视之美》 | 鸢尾花书:从加减乘除到机器学习,欢迎批评指正
如题
看 32.4 重心坐标系 有点费劲, 开个 Issue 讨论讨论.
从物理角度来看,重心坐标系 (barycentric coordinate system) 是一种描述一个几何形状内部任意点位置的方法。它是以该形状的重心作为原点建立的坐标系。
这句话里,我没有理解原点的含义, 刚开始看的时候, 我以为是坐标系中 (0,0,0) 所在的位置就是原点. 但后面才知道, 重心坐标系中不包含 (0,0,0)这个点. 重心所在点是 (1/3,1/3,1/3)
在平面上的一个三角形中,任何一点都可以表示为三个定点的加权平均值,其中每个定点的权重由它到该点的距离与该三角形的周长之比确定。这些权重称为该点在三角形的重心坐标。
首先, "定点" 含义不是很明确, 说是三角形三个 "顶点" 是否更合适?
这里我没有理解权重和周长的关系.
我带入了三角形 A(0,1) , B (0,0), C (1,0) 进入这句话:
在平面上的一个三角形 A(0,1) , B (0,0), C (1,0) 中, 有一个点 P(x,y) 都可以表示为三个顶点的加权平均值 . 其中每个顶点的权重由它(顶点)到该点(P)的距离与该三角形的周长之比确定(如何确定, 是什么公式?)。这些权重称为该点在三角形的重心坐标。
在平面上的一个三角形 A(0,1) , B (0,0), C (1,0) 中, 有一个点 P(x,y) 都可以表示为三个顶点的加权平均值
这句话用数学语言表示出来, 可能会更好理解一些:
P=λ1A+λ2B+λ3C
那么 P 的重心坐标就是 (λ1,λ2,λ3).
带入三个顶点 A (1,0,0) B(0,1,0) C(0,0,1) 是能对应起来的.
接着我用 其中每个顶点的权重由它(顶点)到该点(P)的距离与该三角形的周长之比确定
验证.
假设 P 为 (0,1)
三角形周长为 2+根号2
P 到点A 的距离为 0 , 比值为 0
P 到点B 的距离为 1 , 比值为 1/( 2+根号2 )
P 带点C 的距离为 根号2 ,比值为 根号2/( 2+根号2 )
实际上 A 的质心坐标为 (1,0,0) 和上面的比值看上去没什么关系.
api变更,最新版的matplotlib 删除了 matplotlib.cm.get_cmap 使用 matplotlib.colormaps[name]替代
cmap = mpl.colormaps['RdYlBu']
单设、满射 => 单射
图 7 中的描述,应为北京故宫博物院,不是背景故宫博物院
图6的第一张子图,坐标标识有点问题,还有就是3.4是没有源码么,要自己敲?
老师 在这个visualize_cm_in_RGB方法里,这段代码list_colors_RGB = [colors.to_rgb(rgb_idx) for rgb_idx in list_colors],list_colors感觉对新手不是特别友好,这引用的是全局作用域里的变量,感觉把它定义成参数会好理解一点
原代码运行警告
VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray.
f = [[x, y, z]] @ np.linalg.pinv(A @ A.T) @ [[x], [y], [z]]
新numpy版本下,出现了错误
ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 2 dimensions. The detected shape was (3, 1) + inhomogeneous part.
ax1 没有设置 ylable , 在这里设置 set_label_position
没有什么用, 应该是冗余代码, 可以去掉.
另外问下, 这个项目接受 PR 吗? 有需要我可以提PR修复
3.5换个视角看色谱,称hsv色彩空间相当于圆锥坐标系,而3.3说hsv是圆柱坐标系
读起来有些专有名词翻译的比较奇怪,所以来反馈一下。
参考工具
名词
运行代码会遇到告警:
findfont: Generic family 'sans-serif' not found because none of the following families were found: Roboto
系统安装 Roboto 之后依然无法解决.
基于 osx 系统, windows 系统未尝试. 方案非官方, 个人感觉比较 hack ,如果有更好的,欢迎指正.
通过 matplotlib? 查看 matplotlib 库安装位置:
Type: module
String form: <module 'matplotlib' from '/Users/zhangchengxi/anaconda3/lib/python3.11/site-packages/matplotlib/__init__.py'>
File: ~/anaconda3/lib/python3.11/site-packages/matplotlib/__init__.py
Docstring:
切换到第一步找到的 matplotlib 库位置, 比如我的是 ~/anaconda3/lib/python3.11/site-packages/matplotlib/
, 找到子文件夹 ttf
比如我的是 ~/anaconda3/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf
复制 Roboto 相关 ttf 文件到这个文件夹 , 并重启 jupyter
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.