引言
随着数据可视化的需求不断增加,曲线绘制成为一种非常流行的可视化方式。 Python 作为一种功能强大的编程语言,具有丰富的绘图功能,可绘制包括动态曲线、数据曲线、科赫曲线、笛卡尔心形曲线等多种曲线类型。
使用Python绘制动态曲线
动态曲线可以非常生动地呈现数据的变化趋势,通过 pyecharts 包可以轻松完成。下面是 Pyecharts 实现动态曲线展示的例子。
import datetime
import random
from pyecharts import charts
# 实时获取温度数据
def get_temperature():
temperature = random.randint(10, 20)
timestamp = datetime.datetime.now()
return [timestamp, temperature]
# 更新动态数据
def update_temperature():
line_chart.add_xaxis([get_temperature()[0].strftime("%Y-%m-%d %H:%M:%S")])
line_chart.add_yaxis("温度", [get_temperature()[1]])
line_chart = charts.Line()
line_chart.set_global_opts(title_opts=charts.TitleOpts(title="动态曲线图"))
line_chart.add_xaxis([])
line_chart.add_yaxis("温度", [])
line_chart.render_notebook()
for i in range(10):
update_temperature()
time.sleep(1)
line_chart.render_notebook()
使用Python绘制数据曲线图
数据曲线是分析和展示数据变化趋势非常常用的方式,Python 中提供了丰富的数据处理和绘图工具包,例如 matplotlib、seaborn 等。下面是使用 matplotlib 绘制数据曲线的的例子。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
fig = plt.figure()
plt.plot(x, y)
plt.title("数据曲线图")
plt.show()
使用递归法绘制科赫曲线
科赫曲线是一种非常经典的分形曲线,可以通过递归算法来实现。下面是 Python 中使用递归法绘制科赫曲线的代码,其中绘制函数 koch() 是使用递归算法实现的。
import turtle
def koch(tortoise, order, size):
if order == 0:
tortoise.forward(size)
else:
for angle in [60, -120, 60, 0]:
koch(tortoise, order-1, size/3)
tortoise.left(angle)
def main():
tortoise = turtle.Turtle()
window = turtle.Screen()
tortoise.penup()
tortoise.goto(-200,100)
tortoise.pendown()
for i in range(3):
koch(tortoise, 3, 300)
tortoise.right(120)
main()
使用递归法绘制科赫曲线 Python
科赫曲线的计算也可以通过递归算法来实现,下面是 Python 中使用递归法绘制科赫曲线的代码,其中绘制函数 koch_curve() 是使用递归算法实现的。
from turtle import *
def koch_curve(turtle, iterations, length, shortening_factor, angle):
if iterations == 0:
turtle.forward(length)
else:
iterations -= 1
length *= shortening_factor
koch_curve(turtle, iterations, length, shortening_factor, angle)
turtle.left(angle)
koch_curve(turtle, iterations, length, shortening_factor, angle)
turtle.right(angle * 2)
koch_curve(turtle, iterations, length, shortening_factor, angle)
turtle.left(angle)
koch_curve(turtle, iterations, length, shortening_factor, angle)
t = Pen()
t.speed(0)
t.penup()
t.goto(-200, 100)
t.pendown()
iterations = 3
length = 300
shortening_factor = 1/3
angle = 60
koch_curve(t, iterations, length, shortening_factor, angle)
exitonclick()
使用Python处理CSV文件绘制曲线
使用 Python 处理 CSV 文件非常方便,通过 pandas 库的 read_csv() 方法可将 CSV 文件读取为 DataFrame, 然后可以使用 matplotlib 绘制出曲线图。下面是 Python 中使用CSV文件数据绘制曲线的例子。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv("data.csv")
plt.plot(df["x"], df["y"])
plt.title("CSV文件绘制曲线")
plt.show()
使用Python绘制函数曲线
Python 中通过使用 sympy 库可以快速的绘出函数的曲线图,其中符号计算带来的优势在于可对函数求导或者积分,并进行简化。下面是 Python 中使用 sympy 绘制函数曲线的例子。
import sympy as sym
from sympy.plotting import plot
x = sym.Symbol("x")
y = sym.sin(x)
plot(y, (x, -5, 5))
使用Python绘制loss曲线
loss 曲线常用于机器学习训练过程可视化,通过 Python 中的 matplotlib 绘制可以快速的进行实现。下面是 Python 中使用 matplotlib 绘制 loss 曲线的例子。
import matplotlib.pyplot as plt
epoch = range(100)
train_loss = [0.9**i + i**0.5 for i in epoch]
plt.plot(epoch, train_loss)
plt.title("Loss曲线")
plt.show()
使用Python绘制概率密度曲线
概率密度曲线对于了解数据分布情况非常有帮助,通过 Python 中的 scipy 包可以快速的对数据进行分析并且绘制出概率密度曲线。下面是 Python 中使用 scipy 绘制概率密度曲线的例子。
import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt
x = np.linspace(-10, 10, 100)
plt.plot(x, norm.pdf(x, loc=0, scale=1))
plt.title("概率密度曲线")
plt.show()
使用Python绘制笛卡尔心形曲线
笛卡尔心形曲线是一种经典的二维曲线,它的数学表达式为 (x^2+y^2-1)^3 - x^2y^3 = 0。Python 中多种绘图库都可以完成对笛卡尔心形曲线的绘制。下面是 Python 中使用 matplotlib 绘制笛卡尔心形曲线的例子。
import matplotlib.pyplot as plt
import numpy as np
t = np.linspace(0, 2*np.pi, 1000)
x = np.sin(t)*(np.cos(t)**3)
y = np.cos(t)*(np.sin(t)**3)
plt.plot(x, y)
plt.title("笛卡尔心形曲线")
plt.show()
使用Python绘制螺旋曲线
螺旋曲线是一种非常有趣的曲线类型,Python 中使用 turtle 库可以快捷的完成对螺旋曲线的绘制。下面是 Python 中使用 turtle 绘制螺旋曲线的例子。
import turtle
def spiral(n):
for i in range(n):
turtle.forward(i * 10)
turtle.right(144)
turtle.speed(0)
turtle.pensize(2)
turtle.pencolor("red")
spiral(25)
turtle.done()