五个有趣的python绘图

一、turtle绘制奥运五环图’


'''1.turtle绘制奥运五环图'''
import turtle as p
#定义画圆函数
def drawCircle(x,y,c='red'):
    p.pu()#抬起画笔
    p.goto(x,y)#绘制图的起始位置
    p.pd()#放下画笔
    p.color(c)#绘制c色圆环
    p.circle(30,360)#绘制图:半径,角度


#画笔基本设置
p= turtle
p.pensize(3) #画笔尺寸设置3

#绘制五环图
drawCircle(0,0,'blue')
drawCircle(60,0,'black')
drawCircle(120,0,'red')
drawCircle(90,-30,'green')
drawCircle(30,-30,'yellow')
p.done()

运行结果:

在这里插入图片描述

二、turtle绘制漫天雪花


'''2.turtle绘制漫天雪花'''
'''导入turtle库和random'''
import turtle as p
import random

#绘制雪花
def snow(snow_count):
    p.hideturtle()
    p.speed(500)
    p.pensize(2)
    for i in range(snow_count):
        r = random.random()
        g = random.random()
        b = random.random()
        p.pencolor(r, g, b)
        p.pu()
        p.goto(random.randint(-350, 350), random.randint(1, 270))
        p.pd()
        dens = random.randint(8, 12)
        snowsize = random.randint(10, 14)
        for _ in range(dens):
            p.forward(snowsize)  # 向当前画笔方向移动snowsize像素长度
            p.backward(snowsize)  # 向当前画笔相反方向移动snowsize像素长度
            p.right(360 / dens)  # 顺时针移动360 / dens度
            
#绘制地面
def ground(ground_line_count):
    p.hideturtle()
    p.speed(500)
    for i in range(ground_line_count):
        p.pensize(random.randint(5,10))
        x = random.randint(-400, 350)
        y = random.randint(-280, -1)
        r = -y / 280
        g = -y / 280
        b = -y / 280
        p.pencolor(r, g, b)
        p.penup()  # 抬起画笔
        p.goto(x, y)  # 让画笔移动到此位置
        p.pendown()  # 放下画笔
        p.forward(random.randint(40, 100))  # 眼当前画笔方向向前移动40~100距离


#主函数
def main():
    p.setup(800,600,0,0)
    p.bgcolor('black')
    snow(30)
    ground(30)
    p.mainloop()
main()

运行效果:

在这里插入图片描述

三、plotly画柱状图和折线图


'''4.plotly画柱状图和折线图'''
import plotly.graph_objects as go
fig=go.Figure()
fig.add_trace(
    go.Scatter(
        x=[0,1,2,3,4,5],
        y=[1.5,1,1.3,0.7,0.8,0.9]
    )
)
fig.add_trace(
    go.Bar(
        x=[0,1,2,3,4,5],
        y=[2,0.5,0.7,-1.2,0.3,0.4]
    )
)
fig.show()


在这里插入图片描述

四、seaborn热力图

'''4.seaborn热力图'''
import seaborn as sns
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

#生成数据集
data = np.random.random((6,6))
np.fill_diagonal(data,np.ones(6))
features = ["prop1","prop2","prop3","prop4","prop5", "prop6"]
data = pd.DataFrame(data, index = features, columns=features)
print(data)
# 绘制热力图
heatmap_plot = sns.heatmap(data, center=0, cmap='gist_rainbow')
plt.show()


在这里插入图片描述

五、2020年步数统计日历图

'''5.2020年步数统计日历图'''
import datetime
import random
from pyecharts import options as opts
from pyecharts.charts import Calendar

def calendar_interval_1() -> Calendar:
    begin = datetime.date(2020, 1, 1)
    end = datetime.date(2020, 12, 27)
    data = [
        [str(begin + datetime.timedelta(days=i)), random.randint(1000, 25000)]
        for i in range(0, (end - begin).days + 1, 2)  # 隔天统计
    ]
    calendar = (
      Calendar(init_opts=opts.InitOpts(width="1200px")).add(
            "", data, calendar_opts=opts.CalendarOpts(range_="2020"))
        .set_global_opts(
            title_opts=opts.TitleOpts(title="Calendar-2020年步数统计"),
            visualmap_opts=opts.VisualMapOpts(
                max_=25000,
                min_=1000,
                orient="horizontal",
                is_piecewise=True,
                pos_top="230px",
                pos_left="100px",
            ),
        )
    )
    return calendar

calendar_interval_1().render('C:/pythoncode/calendar.html')

在这里插入图片描述

  • 10
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值