Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0721
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
- 本教程同步发布在:
- 个人网站: `https://oeasy.org`
- 蓝桥云课: `https://www.lanqiao.cn/courses/3584`
- GitHub: `https://github.com/overmind1980/oeasy-python-tutorial`
- Gitee: `https://gitee.com/overmind1980/oeasypython`
---2024,2
2025,3
2026,3.5
filename = r"/home/shiyanlou/data.csv"
with open(filename) as f:
lines = f.readlines()
for line in lines:
line = line.replace("\n","")
year, num = line.split(",")
print(year,num,sep=":")
filename = r"/home/shiyanlou/data.csv"
data = dict()
with open(filename) as f:
for index,line in enumerate(f.readlines()):
line = line.replace("\n","")
year, num = line.split(",")
data[index] ={
"label" : year,
"num" : num
}
print(data)
import bpy
filename = r"/home/shiyanlou/data.csv"
data = dict()
with open(filename) as f:
for index,line in enumerate(f.readlines()):
line = line.replace("\n","")
year, num = line.split(",")
data[index] ={
"label" : year,
"num" : num
}
### clean the scene
for obj in bpy.data.objects:
bpy.data.objects.remove(obj)
### Visualize data
for index in data:
bpy.ops.mesh.primitive_cube_add(size=1)
bpy.context.object.location = (0, index * 2, 0)
value = float(data[index]["num"])
bpy.context.object.scale = (1, 1, value)
- 执行结果
- 需要放在xy平面以上
import bpy
filename = r"/home/shiyanlou/data.csv"
data = dict()
with open(filename) as f:
for index,line in enumerate(f.readlines()):
line = line.replace("\n","")
year, num = line.split(",")
data[index] ={
"label" : year,
"num" : num
}
### clean the scene
for obj in bpy.data.objects:
bpy.data.objects.remove(obj)
### Visualize data
for index in data:
bpy.ops.mesh.primitive_cube_add(size=1)
bpy.context.object.location = (0, index * 2, height/2)
value = float(data[index]["num"])
bpy.context.object.scale = (1, 1, value)
- 执行结果
import bpy
filename = r"/home/shiyanlou/data.csv"
data = dict()
with open(filename) as f:
for index,line in enumerate(f.readlines()):
line = line.replace("\n","")
year, num = line.split(",")
data[index] ={
"label" : year,
"num" : num
}
### clean the scene
for obj in bpy.data.objects:
bpy.data.objects.remove(obj)
### Visualize data
for index in data:
### create the bar
height = float(data[index]["num"])
bpy.ops.mesh.primitive_cube_add(size=1)
bpy.context.object.location = (0, index * 2, height/2)
bpy.context.object.scale = (1, 1, height)
### lable the bar
lable = data[index]["label"]
bpy.ops.object.text_add(enter_editmode=True)
bpy.context.object.location = (0.6, index *2, 0)
bpy.ops.font.delete(type="PREVIOUS_WORD")
bpy.ops.font.text_insert(text=lable)
bpy.ops.object.editmode_toggle()
- 标签出现
- 尝试给标签添加一点厚度
import bpy
filename = r"/home/shiyanlou/data.csv"
data = dict()
with open(filename) as f:
for index,line in enumerate(f.readlines()):
line = line.replace("\n","")
year, num = line.split(",")
data[index] ={
"label" : year,
"num" : num
}
### clean the scene
for obj in bpy.data.objects:
bpy.data.objects.remove(obj)
### Visualize data
for index in data:
### create the bar
height = float(data[index]["num"])
bpy.ops.mesh.primitive_cube_add(size=1)
bpy.context.object.location = (0, index * 2, height/2)
bpy.context.object.scale = (1, 1, height)
### lable the bar
lable = data[index]["label"]
bpy.ops.object.text_add(enter_editmode=True)
bpy.context.object.location = (0.6, index *2, 0)
bpy.ops.font.delete(type="PREVIOUS_WORD")
bpy.ops.font.text_insert(text=lable)
bpy.ops.object.editmode_toggle()
bpy.context.object.data.bevel_depth = 0.1
- 标签变厚了
import bpy
filename = r"/home/shiyanlou/data.csv"
data = dict()
with open(filename) as f:
for index,line in enumerate(f.readlines()):
line = line.replace("\n","")
year, num = line.split(",")
data[index] ={
"label" : year,
"num" : num
}
### clean the scene
for obj in bpy.data.objects:
bpy.data.objects.remove(obj)
### Visualize data
for index in data:
### create the bar
height = float(data[index]["num"])
bpy.ops.mesh.primitive_cube_add(size=1)
bpy.context.object.location = (0, index * 2, height/2)
bpy.context.object.scale = (1, 1, height)
### lable the bar
lable = data[index]["label"]
bpy.ops.object.text_add(enter_editmode=True)
bpy.context.object.location = (0.6, index *2, 0)
bpy.ops.font.delete(type="PREVIOUS_WORD")
bpy.ops.font.text_insert(text=lable)
bpy.ops.object.editmode_toggle()
bpy.context.object.data.bevel_depth = 0.1
###visualize the data
# Label z axis
amount_of_ticks = 5
for i in range (amount_of_ticks):
# Put a cube
bpy.ops.mesh.primitive_cube_add(size=1, location=(0, -1, i))
bpy.context.object.scale = (1, 1, 0.1)
- 侧面出现刻度
import bpy
filename = r"/home/shiyanlou/data.csv"
data = dict()
with open(filename) as f:
for index,line in enumerate(f.readlines()):
line = line.replace("\n","")
year, num = line.split(",")
data[index] ={
"label" : year,
"num" : num
}
### clean the scene
for obj in bpy.data.objects:
bpy.data.objects.remove(obj)
### Visualize data
for index in data:
### create the bar
height = float(data[index]["num"])
bpy.ops.mesh.primitive_cube_add(size=1)
bpy.context.object.location = (0, index * 2, height/2)
bpy.context.object.scale = (1, 1, height)
### lable the bar
lable = data[index]["label"]
bpy.ops.object.text_add(enter_editmode=True)
bpy.context.object.location = (0.6, index *2, 0)
bpy.ops.font.delete(type="PREVIOUS_WORD")
bpy.ops.font.text_insert(text=lable)
bpy.ops.object.editmode_toggle()
bpy.context.object.data.bevel_depth = 0.1
###visualize the data
# Label z axis
amount_of_ticks = 5
thickness_of_ticks = 0.1
offset_of_ticks = 1
for i in range (amount_of_ticks):
# Put a cube
bpy.ops.mesh.primitive_cube_add(size=1, location=(0, -offset_of_ticks, i))
bpy.context.object.scale = (1, 1, thickness_of_ticks)
import bpy
filename = r"/home/shiyanlou/data.csv"
data = dict()
with open(filename) as f:
for index,line in enumerate(f.readlines()):
line = line.replace("\n","")
year, num = line.split(",")
data[index] ={
"label" : year,
"num" : num
}
### clean the scene
for obj in bpy.data.objects:
bpy.data.objects.remove(obj)
### Visualize data
for index in data:
### create the bar
height = float(data[index]["num"])
bpy.ops.mesh.primitive_cube_add(size=1)
bpy.context.object.location = (0, index * 2, height/2)
bpy.context.object.scale = (1, 1, height)
### lable the bar
lable = data[index]["label"]
bpy.ops.object.text_add(enter_editmode=True)
bpy.context.object.location = (0.6, index *2, 0)
bpy.ops.font.delete(type="PREVIOUS_WORD")
bpy.ops.font.text_insert(text=lable)
bpy.ops.object.editmode_toggle()
bpy.context.object.data.bevel_depth = 0.1
###visualize the data
# Label z axis
amount_of_ticks = 5
thickness_of_ticks = 0.1
offset_of_ticks = 1
for i in range (amount_of_ticks):
# Put a cube
bpy.ops.mesh.primitive_cube_add(size=1, location=(0, -offset_of_ticks, i))
bpy.context.object.scale = (1, 1, thickness_of_ticks)
# Put a number
number_pos_z = i + thickness_of_ticks/2
value_as_str = str(i)
bpy.ops.object.text_add(enter_editmode=True)
bpy.context.object.location = (0, -2, number_pos_z)
bpy.context.object.rotation_euler = (1.57, 0, 1.57)
bpy.ops.font.delete(type='PREVIOUS_WORD')
bpy.ops.font.text_insert(text=value_as_str)
bpy.ops.object.editmode_toggle()
bpy.context.object.data.bevel_depth = 0.1
- z轴坐标数值出现
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。






