您的位置:

python画图笔记(python画图作业)

本文目录一览:

python画图:,横坐标是点数(1到1000),纵坐标是大小不同的数值,即如何用颜色的深浅代表数值的大小?

1、首先在python软件中,创建一个响应鼠标的自定义函数,当鼠标在画布上面点击一下,就画一个圆。

2、创建一个画布,背景是白色:img=np.ones((365,500,3),np.uint8)*255。

3、然后创建一个窗口:cv2.namedWindow('image')。当鼠标在这个窗口里面的时候,上面的自定义函数会响应鼠标。

4、开始一个while循环,每次在image窗口里面点击鼠标,就会画一个圆。

5、执行程序之后,在画布上随机的点击鼠标,就可以得到彩色的圆。

python_海龟绘图_坐标系问题_画笔各种方法-python工作笔记013

然后我们继续看,这次我们用海龟绘图,程序包,去画画,

看看海龟绘图都有哪些方法

可以看到,先导入import turtle 海龟绘图

然后turtle.showturtle() 会显示一个箭头

turtle.write("hello world") 会显示对应文字

然后turtle.forward(300),会向前走300像素

然后看看海龟绘图的,坐标体系

然后turtle.color("red"),把画笔颜色换成红色

然后turtle.left(90)把箭头,逆时针转90度

然后turtle.forward(300) 向前移动300个像素

然后turtle.goto(0,50) 走到0,50这个坐标点去

再看一下坐标系,原点0,0开始操作

还有上面这些操作,我们也试一试

turtle.goto(0,0)是回到原点

turtle.penup()是抬起画笔

然后turtle.goto(0,300),turtle.goto(0,0) 然后再去,turtle.pendown()放下画笔

然后再去turtle.goto(0,50) turtle.goto(50,50)走到对应的坐标去

然后再去turtle.circle(100),以100为半径,逆时针画一个圆

可以看到,半径是100对吧

python 绘制和密度图笔记

import pandasas pd

import numpyas np

import seabornas sns

import matplotlib.pyplotas plt

pd.set_option('display.max_columns', 10000)

pd.set_option('display.max_rows', 10000000000)

pd.set_option('display.width', 100000)

income = pd.read_excel(r'D:\bigData\0629demo\dataSource\income.xlsx')

fill_data = income.fillna(value={'workclass': income.workclass.mode()[0], 'occupation': income.occupation.mode()[0],

                                'native-country': income['native-country'].mode()[0]}, inplace=True)

# print(income.apply(lambda x: np.sum(x.isnull())))

# print(income)

print(income.describe())

print(income.describe(include=['object']))

# 设置绘图风格

plt.style.use('ggplot')

# 设置多图形组合

fig, axes = plt.subplots(2, 1)

# 绘制不同收入水平下的年龄核密度图

# kind='kde', label='=50K', ax=axes[0], legend=True, linestyle='-'

# kind='kde', label='50K', ax=axes[0], legend=True, linestyle='--'

income['age'][income.income ==' =50K'].plot(kind='kde', ax=axes[0], label='=50K', legend=True, linestyle='-')

income['age'][income.income ==' 50K'].plot(kind='kde', ax=axes[0], label='50K', legend=True, linestyle='--')

# 绘制不同收入水平下的周工作小时数核密度图

# kind='kde', label='= 50K', ax=axes[1], legend=True,  linestyle='-'

# kind='kde', label=' 50K', ax=axes[1], legend=True, linestyle='--'

income['hours-per-week'][income.income ==' =50K'].plot(kind='kde', label='= 50K', ax=axes[1], legend=True,

                                                        linestyle='-')

income['hours-per-week'][income.income ==' 50K'].plot(kind='kde', label=' 50K', ax=axes[1], legend=True,

                                                        linestyle='--')

plt.show()

# 构造不同收入水平下各种族人数的数据

race = pd.DataFrame(income.groupby(by=['race', 'income']).agg(np.size).loc[:, 'age'])

# 重设行索引

race = race.reset_index()

# 变量重命名

race.rename(columns={'age':'counts'}, inplace=True)

print(race)

# 排序

race.sort_values(by=['race', 'counts'], ascending=False, inplace=True)

# 构造不同收入水平下各家庭关系人数的数据

relationship = pd.DataFrame(income.groupby(by=['relationship', 'income']).agg(np.size).loc[:, 'age'])

relationship = relationship.reset_index()

relationship.rename(columns={'age':'counts'}, inplace=True)

relationship.sort_values(by=['relationship', 'counts'], ascending=False, inplace=True)

plt.figure(figsize=(15, 10))

sns.barplot(x='race', y='counts', hue='income', data=race)

plt.show()

plt.figure(figsize=(15, 10))

sns.barplot(x='relationship', y='counts', hue='income', data=relationship)

plt.show()

用Python画图

今天开始琢磨用Python画图,没使用之前是一脸懵的,我使用的开发环境是Pycharm,这个输出的是一行行命令,这个图画在哪里呢?

搜索之后发现,它会弹出一个对话框,然后就开始画了,比如下图

第一个常用的库是Turtle,它是Python语言中一个很流行的绘制图像的函数库,这个词的意思就是乌龟,你可以想象下一个小乌龟在一个x和y轴的平面坐标系里,从原点开始根据指令控制,爬行出来就是绘制的图形了。

  它最常用的指令就是旋转和移动,比如画个圆,就是绕着圆心移动;再比如上图这个怎么画呢,其实主要就两个命令:

turtle.forward(200)

turtle.left(170)

第一个命令是移动200个单位并画出来轨迹

第二个命令是画笔顺时针转170度,注意此时并没有移动,只是转角度

然后呢? 循环重复就画出来这个图了

好玩吧。

有需要仔细研究的可以看下这篇文章 ,这个牛人最后用这个库画个移动的钟表,太赞了。

Turtle虽好玩,但是我想要的是我给定数据,然后让它画图,这里就找到另一个常用的画图的库了。

Matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。其中,matplotlib的pyplot模块一般是最常用的,可以方便用户快速绘制二维图表。

使用起来也挺简单,

首先import matplotlib.pyplot as plt 导入画图的图。

然后给定x和y,用这个命令plt.plot(x, y)就能画图了,接着用plt.show()就可以把图形展示出来。

接着就是各种完善,比如加标题,设定x轴和y轴标签,范围,颜色,网格等等,在 这篇文章里介绍的很详细。

现在互联网的好处就是你需要什么内容,基本上都能搜索出来,而且还是免费的。

我为什么要研究这个呢?当然是为了用,比如我把比特币的曲线自己画出来可好?

假设现在有个数据csv文件,一列是日期,另一列是比特币的价格,那用这个命令画下:

这两列数据读到pandas中,日期为df['time']列,比特币价格为df['ini'],那我只要使用如下命令

plt.plot(df['time'], df['ini'])

plt.show()

就能得到如下图:

自己画的是不是很香,哈哈!

然后呢,我在上篇文章 中介绍过求Ahr999指数,那可不可以也放到这张图中呢?不就是加一条命令嘛

plt.plot(df['time'], df['Ahr999'])

图形如下:

但是,Ahr999指数怎么就一条线不动啊, 原来两个Y轴不一致,显示出来太怪了,需要用多Y轴,问题来了。

继续谷歌一下,把第二个Y轴放右边就行了,不过呢得使用多图,重新绘制

fig = plt.figure() # 多图

ax1 = fig.add_subplot(111)

ax1.plot(df['time'], df['ini'], label="BTC price")  # 绘制第一个图比特币价格

ax1.set_ylabel('BTC price') # 加上标签

# 第二个直接对称就行了

ax2 = ax1.twinx()# 在右边增加一个Y轴

ax2.plot(df['time'], df['Ahr999'], 'r', label="ahr999")  # 绘制第二个图Ahr999指数,红色

ax2.set_ylim([0, 50])# 设定第二个Y轴范围

ax2.set_ylabel('ahr999')

plt.grid(color="k", linestyle=":")# 网格

fig.legend(loc="center")#图例

plt.show()

跑起来看看效果,虽然丑了点,但终于跑通了。

这样就可以把所有指数都绘制到一张图中,等等,三个甚至多个Y轴怎么加?这又是一个问题,留给爱思考爱学习的你。

有了自己的数据,建立自己的各个指数,然后再放到图形界面中,同时针对异常情况再自动进行提醒,比如要抄底了,要卖出了,用程序做出自己的晴雨表。

自学python需要做什么笔记

python的书很多 , 但是好书不多, 经过我这么多年的python学习,我总结出了一个python学习的读书路线:

python简明教程: 让你大体上了解一下python, 最好是能够独立完成最后一个练习项目之后再看别 的书;

python学习手册, python基础教程,python核心编程, 这三本书都是讲基础的, 但是都有不足又相互补充 , 我建议你随便挑一本开始看, 当看到某个地方有些不明白的时候, 去看看另外两本书里对应的章节, 有的时候你会恍然大悟的;