PyQtGraph是一个建立在PyQt/PySide之上的Python数据可视化图形界面库,其性能强、速度快,能够胜任大部分交互式的2D、3D图形绘制,可以搞定数据科学领域大量的数据可视化工作。...使用图形参数 # coding:utf-8 # 作者:州的先生 # 博客:https://zmister.com from pyqtgraph.Qt import QtGui, QtCore import...散点图、坐标轴标签和刻度 # coding:utf-8 # 作者:州的先生 # 博客:https://zmister.com from pyqtgraph.Qt import QtGui, QtCore...# 添加一个图形 p5 = win.addPlot(title="散点图、坐标轴标签、坐标轴刻度") x = np.random.normal(size=1000) * 1e-5 # 生成X轴数据 y...p5.setLabel('bottom', "Y Axis", units='s') #设置纵坐标轴标签文本 p5.setLogMode(x=True, y=False) # 设置坐标轴刻度模式 if
,也称为轴域区,或者绘图区; Axis:指坐标系中的垂直轴与水平轴,包含轴的长度大小(图中轴长为 7)、轴标签(指 x 轴,y轴)和刻度标签; Artist:您在画布上看到的所有元素都属于 Artist...import pyplot as plt #创建图形对象 fig = plt.figure() 我们使用 add_axes() 将 axes 轴域添加到画布中。...通过调用 add_axes() 方法能够将 axes 对象添加到画布中,该方法用来生成一个 axes 轴域对象,对象的位置由参数rect决定。...在本节,我们将学习如何在同一画布上绘制多个子图。...在蜘蛛图中,一个变量相对于另一个变量的显著性是清晰可见的。这里需要使用 Matplotlib 来进行画图,首先设置两个数组:labels 和 stats。他们分别保存了这些属性的名称和属性值。
的使用 pip install pyqtgraph#显示波形的界面 pip install PyQt5#界面要Qt的支持 pyqtgraph是Python平台上一种功能强大的2D/3D绘图库,相对于matplotlib...数据可视化:自定义坐标轴信息 方法1 其原则是,直接使用pyqtgraph库提供的轴项类AxisItem,定义它的一个实例对象,调用该类的setTicks函数设置横坐标轴的字符信息,代码如下: ?...代码简要说明如下: 1、第13-29行,以pyqtgraph库提供的AxisItem作为基类自定义了一个轴项类MyStringAxis,在类中重定义tickStrings函数,实现横坐标刻度的的字符信息显示...对于多条曲线的快速绘制方式,有两种方案可供选择,一种是将多条曲线合并显示在一幅绘图区域上,另一种方案是将多条曲线显示在不同的绘图区域上,对于这两种绘制方案,下面通过例子来演示在Python语言中使用pyqtgraph...行,设置绘图区域的网格及坐标轴范围属性 7、第31行,使用app.exec_()函数运行实例,进入消息循环 方案2:将多条曲线显示在不同的绘图区域 程序的运行效果如下图所示: ?
3.3 选择恰当的图表 在了解图表受众和要呈现的数据特征后,需要选择恰当的图表呈现目标用户需要的数据。如何选择图表准确地展示数据呢?首先,要理解每种图表的使用场景、突显的数据特征以及使用的范围。...所以,我们也需要了解坐标轴的使用方式,涉及X轴、Y轴标签、刻度数值和数值区间段数等。 ?...图06 X、Y轴坐标刻度 由于空间的限制,轴标签一般情况下不适合过长的文案,可以适当限制标签文案显示的个数,或改变显示的角度(一般在0~90度之间)以节省空间,但需要遵循从左到右的阅读习惯。...对于坐标轴上刻度数值,一般初始值定为0,避免产生误导。最大刻度值取值要恰当,确保数据序列占据2/3图表区以上。同时,对数据区间的划分建议在4、5段,不宜过多或过少。...7.3 慎用3D立体图形 3D立体图形的透视容易分散用户的注意力,对数据特征造成掩盖。从图表墨水比原则来说,3D立体图形会增加信息噪音,降低墨水比。
3.3 选择恰当的图表 在了解图表受众和要呈现的数据特征后,需要选择恰当的图表呈现目标用户需要的数据。如何选择图表准确地展示数据呢?首先,要理解每种图表的使用场景、突显的数据特征以及使用的范围。...所以,我们也需要了解坐标轴的使用方式,涉及X轴、Y轴标签、刻度数值和数值区间段数等。...图06 X、Y轴坐标刻度 由于空间的限制,轴标签一般情况下不适合过长的文案,可以适当限制标签文案显示的个数,或改变显示的角度(一般在0~90度之间)以节省空间,但需要遵循从左到右的阅读习惯。...对于坐标轴上刻度数值,一般初始值定为0,避免产生误导。最大刻度值取值要恰当,确保数据序列占据2/3图表区以上。同时,对数据区间的划分建议在4、5段,不宜过多或过少。...7.3 慎用3D立体图形 3D立体图形的透视容易分散用户的注意力,对数据特征造成掩盖。从图表墨水比原则来说,3D立体图形会增加信息噪音,降低墨水比。
轴域也拥有辅助方法,用于设置和装饰 x 和 y 轴的刻度、刻度标签和轴标签: xtext = ax.set_xlabel('my xdata') # returns a Text instance ytext...图形的默认坐标系统简单地以像素(这通常不是你想要的)为单位,但你可以通过设置你添加到图中的艺术家的transform属性来控制它。...实例 yaxis matplotlib.axis.YAxis实例 轴容器 matplotlib.axis.Axis实例处理刻度线,网格线,刻度标签和轴标签的绘制。...Tick包含刻度和网格线的实例,以及上侧和下侧刻度的标签实例。 每个都可以直接作为Tick的属性访问。此外,也有用于确定上标签和刻度是否对应x轴,以及右标签和刻度是否对应y轴的布尔变量。...tick1On 确定是否绘制主刻度线的布尔值 tick2On 确定是否绘制次刻度线的布尔值 label1On 确定是否绘制主刻度标签的布尔值 label2On 确定是否绘制次刻度标签的布尔值 这里是个例子
图可以有其他的东西,比如suptitle,它是图的中心标题。你也可以将图例(legend)和颜色条(color bar)添加到图中。 在图上,你可以添加坐标轴(Axes)。...坐标轴是plot()和scatter()等函数绘制的区域,可以包含与其相关的刻度(tick)、标签(label)等。图可以包含多个坐标轴。 你可能会疑惑了?...每个坐标轴都有一个x轴和一个y轴(这句话有点难以理解,主要是因为在英语中Axes和Axis都翻译为轴,其实Axes可以理解为子图),它们包含刻度,刻度包含主要和次要的刻度线和刻度标签。...如果你要绘一个特别的坐标轴,还有坐标轴标签、标题和图例,以及坐标轴比例和网格线要考虑。 子图 这个是matplotlib中最不容易理解的。首先是我们为什么需要它?...因为有时候我们需要将不同的数据视图并排进行比较。为此,Matplotlib引入了子图的概念:可以在一个图中存在多组较小的坐标轴。
接下来,我们创建一个K线图的图形绘制类,通过PyQt和PyQtGraph的绘图组件绘制K线图。...,其接收一个数组其中包含时间、开盘价、收盘价、最低价和最高价的列表,我们只需要将其添加到PyQtGraph的绘图方法中,就可以生成具体的K线图图形。...stringaxis.setTicks([axis_5, axis_4, axis_3, axis_2, axis_1, self.axis_dict.items()]) # 设置X轴刻度值...self.k_plt.setYRange(y_min,y_max) self.k_plt.setLabel(axis='left', text='指数') # 设置Y轴标签...self.k_plt.setLabel(axis='bottom', text='日期') # 设置X轴标签 self.label = pg.TextItem()
不同于网上其他文章或代码讲解,今天我们集中只关注实时绘制数据功能的实现。为了更精准学习该 pyqtgraph 模块功能,我们将参考官方给出的实例来边学边练。...具备更好的图像交互、3D展示等 1.2 pyqtgraph 安装 一般配合 PyQt5 使用,这些都要预先安装好,我们这里只提 pyqtgraph 相关: pip install pyqtgraph...2.1.3 写成 PlotWidget 形式 总结下模式 1 的原理:x 坐标数据不变化,对应的 y 数据设置个左移变换的函数,计时器信号绑定该左移数据的函数,把 y 数据能实时设置到图中即可。...实例 1 中绘制图的写法比较少见,通常应用是通过 pyqtgraph.PlotWidget.plot() 来实现在控件中作图再添加到 GUI 控件中,所以我们将采用 PlotWidget 的写法来实现模式...() 函数随着 y 的变化同步进行设置,产生 x 轴同步移动的效果。
xticks和yticks: 为x,y轴的主刻度和次刻度设置颜色、大小、方向,以及标签大小。...就是隔几个刻度才显示一个标签文本 ymajorLocator = MultipleLocator(3) #定义纵向主刻度标签的刻度差为3的倍数。...就是隔几个刻度才显示一个标签文本 ax1.xaxis.set_major_locator(xmajorLocator) #x轴 应用定义的横向主刻度格式。...如果不应用将采用默认刻度格式 ax1.yaxis.set_major_locator(ymajorLocator) #y轴 应用定义的纵向主刻度格式。...如果不应用将采用默认刻度格式 ax1.xaxis.grid(True, which='major') #x坐标轴的网格使用定义的主刻度格式 ax1.yaxis.grid(True, which
请注意默认情况下,legend 会忽略所有不带标签的元素。 散点大小的图例 某些情况下默认的图例不足以满足特定的可视化需求。例如,你在使用散点的大小来标记数据的某个特征,然后希望创建一个相应的图例。...每个axes对象都有着属性xaxis和yaxis,表示 x 和 y 轴,其中包含着所有的属性用来指代轴的线、刻度和标签。 主要的和次要的刻度 在每个坐标轴上,都有主要的刻度和次要的刻度概念。...我们看到每个主要刻度显示了一个大的标志和标签,而每个次要刻度显示了一个小的刻度标志没有标签。 这些刻度属性,位置和标签,都可以使用每个轴的formatter和locator对象进行个性化设置。...注意上图中我们去除了 x 轴的标签(但是保留了刻度或网格线),y 轴的刻度和标签都被去除了。图表中没有刻度和标签在很多情况下很有用,例如,当你希望展示一个图像的网格。...注意上图中每张图像都有它自己的 axes,我们将每一个 axes 的 locator 都设置为 null 因为这些刻度值(像素值)在这里并没有任何实际意义。
每个axes对象都有着属性xaxis和yaxis,表示 x 和 y 轴,其中包含着所有的属性用来指代轴的线、刻度和标签。 主要的和次要的刻度 在每个坐标轴上,都有主要的刻度和次要的刻度概念。...这些刻度属性,位置和标签,都可以使用每个轴的formatter和locator对象进行个性化设置。...(plt.NullLocator()) ax.xaxis.set_major_formatter(plt.NullFormatter()) 注意上图中我们去除了 x 轴的标签(但是保留了刻度或网格线)...,y 轴的刻度和标签都被去除了。...axes,我们将每一个 axes 的 locator 都设置为 null 因为这些刻度值(像素值)在这里并没有任何实际意义。
每个axes对象都有着属性xaxis和yaxis,表示 x 和 y 轴,其中包含着所有的属性用来指代轴的线、刻度和标签。 主要的和次要的刻度 在每个坐标轴上,都有主要的刻度和次要的刻度概念。...这些刻度属性,位置和标签,都可以使用每个轴的formatter和locator对象进行个性化设置。...(plt.NullLocator()) ax.xaxis.set_major_formatter(plt.NullFormatter()) 注意上图中我们去除了 x 轴的标签(但是保留了刻度或网格线...),y 轴的刻度和标签都被去除了。...axes,我们将每一个 axes 的 locator 都设置为 null 因为这些刻度值(像素值)在这里并没有任何实际意义。
每个 axes 对象都有着属性xaxis和yaxis,表示 x 和 y 轴,其中包含着所有的属性用来指代轴的线、刻度和标签。 (1)主要的和次要的刻度 在每个坐标轴上,都有主要的刻度和次要的刻度概念。...这些刻度属性,位置和标签,都可以使用每个轴的 formatter 和 locator 对象进行个性化设置。...x 轴的标签(但是保留了刻度或网格线),y 轴的刻度和标签都被去除了。...axes,我们将每一个 axes 的 locator 都设置为 null 因为这些刻度值(像素值)在这里并没有任何实际意义。...刻度数量最大值 AutoLocator 默认的刻度数量最大值 AutoMinorLocator 默认的次要刻度 Formatter 对象 描述 NullFormatter 无标签 IndexFormatter
本期我们就来聊聊Python中关于时间轴的几种处理办法,包括如何控制时间轴呈现的刻度个数、刻度间隔和刻度标签的旋转。...:为折线图添加标签,类似于图例的作用; 刻度个数的控制 ---- 本案例所使用的数据是2018年9月21日至2018年12月21日上海空气质量指数,数据来源于2345天气网。...如上图所示,我们在原有代码的基础上做了两方面的修改,一个是将日期呈现为“月-日”的格式,这样可以缩短刻度标签;另一个是我们控制了x轴刻度标签的个数(如图中呈现了10个刻度值)。...如上图所示,标签值之间形成了固定的间隔,即7天。但是还是存在重叠或拥挤问题,解决的办法有两种,一个是拉长间隔天数,另一个是将刻度标签旋转30度或45度。...,将刻度标签旋转45度 plt.xticks(rotation=45) plt.show() ?
领取专属 10元无门槛券
手把手带您无忧上云