本文目录一览:
python如何用像素规定tkinter模块里label或button的大小
需要指定image或者bitmap属性,然后再使用width, height来控制。
默认的button是text类型, width, heigth表示字符个数和行数,指定那些后,意义就变成像素。
例如:
import Tkinter
root = Tkinter.Tk()
b1 = Tkinter.Button(root, bitmap="gray50", width=10, height=10)
b1.pack()
root.mainloop()
扩展资料:
python参考函数
long([x[, base]]) 将一个字符转换为long类型
pow(x, y[, z]) 返回x的y次幂
range(, stop[, step]) 产生一个序列,默认从0开始
round(x[, n]) 四舍五入
sum(iterable[, start]) 对集合求和
oct(x)将一个数字转化为8进制
hex(x)将整数x转换为16进制字符串
chr(i)返回整数i对应的ASCII字符
参考资料来源:百度百科-Python (计算机程序设计语言)
Python热力图绘制方法—新手教程
# Python热力图绘制方法
热力图的使用场景有
1.描述数据在空间的密集程度,常见有城市热力图,区域热力图
2.描述多个变量之间相关性高低程度
# step 1 准备数据集,读取excel列表内容,usecols = index, 这里是表里的第一列不读取。
index =range(1, 11)
dataset = np.array(pd.read_csv(r'C:\Users\Administrator\Desktop\heatmap.csv', usecols=index))
# step 2 读取excel行索引转成列表,作为热力图的y轴标签
a = (pd.read_csv(r'C:\Users\Administrator\Desktop\heatmap.csv', usecols=[0]))
y_label =list(a.stack())
# step 3 读取excel列索引转成列表,作为热力图的x轴标签
b = (pd.read_csv(r'C:\Users\Administrator\Desktop\heatmap.csv'))
column_index=(b.columns.tolist())
x_label = column_index[1:]
# 这一步是为了计算热力图的数据的最大值,可以进行标准化处理,也可以直接显示数据,dataframe转成list,从list里面寻找最大值
dataset_max = (pd.read_csv(r'C:\Users\Administrator\Desktop\heatmap.csv', usecols=index))
list1 = np.array(dataset_max.stack())
max_number =max(list1)
# step 4 开始绘制热力图
plt.figure(figsize=(14, 8))# 定义输出图像大小,annot参数决定是否在热力图上显示数值,Vmax,Vmin表示最大最小值,cmap表示颜色
sns.heatmap(dataset, fmt='.0f', annot=True, vmin=0, vmax=max_number, cmap='Reds', yticklabels=y_label,
xticklabels=x_label)
# 绘制标签
plt.xlabel('This is x label', labelpad=15)
plt.ylabel('This is y label', labelpad=20)
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轴怎么加?这又是一个问题,留给爱思考爱学习的你。
有了自己的数据,建立自己的各个指数,然后再放到图形界面中,同时针对异常情况再自动进行提醒,比如要抄底了,要卖出了,用程序做出自己的晴雨表。