hours = list(range(24)) ax1.plot(hours,hour24['casual'],'g--.',label='2011') ax1.set_xticks(hours) ax1.set_ylabel('租用量') ax1.set_xlabel('小时') ax1.set_title('非会员用户24小时租用量') ax1.legend() 实现一条线显示一个颜色,并添加图例,hour24['casual'],'有两组数据,一组是2011,一组是2012
时间: 2023-12-25 19:03:50 浏览: 113
可以使用以下代码实现:
```
hours = list(range(24))
# 绘制2011年数据的折线图,颜色为绿色,线型为虚线加点
ax1.plot(hours, hour24['casual'], 'g--.', label='2011')
# 绘制2012年数据的折线图,颜色为红色,线型为实线
ax1.plot(hours, hour24_2012['casual'], 'r-', label='2012')
ax1.set_xticks(hours)
ax1.set_ylabel('租用量')
ax1.set_xlabel('小时')
ax1.set_title('非会员用户24小时租用量')
ax1.legend()
```
其中,`hour24_2012` 是包含了2012年数据的 Pandas DataFrame 变量,绘制2012年数据的折线图时,使用了 `'r-'` 表示红色实线的线型。`ax1.legend()` 命令会自动添加图例,因为在之前的绘图命令中已经添加了 `label` 参数。
相关问题
fig = plt.figure() ax1 = fig.add_subplot(111) plt.xticks(rotation=-70) ax1.plot(timelist, rain, label="rain", color="r") ax1.legend(bbox_to_anchor=(0, 1), loc=1, borderaxespad=0) ax1.set_xlabel("hour") ax1.set_ylabel("rain(mm)") ax2 = ax1.twinx() ax2.plot(timelist, rainPop, label="rainPop", color="b", linestyle='dotted') ax2.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0) ax2.set_ylabel("rainPop(%)") plt.show()
这段代码使用了Matplotlib库绘制了一个包含两个y轴的折线图。下面是代码的解释:
首先,创建了一个空白的图形对象`fig`,然后通过`fig.add_subplot(111)`创建了一个子图对象`ax1`。
接下来,使用`plt.xticks(rotation=-70)`设置了横轴刻度标签的旋转角度为-70度。
然后,使用`ax1.plot(timelist, rain, label="rain", color="r")`绘制了第一个折线图,横轴为`timelist`,纵轴为`rain`,线条颜色为红色,并添加了图例标签"rain"。
紧接着,使用`ax1.legend(bbox_to_anchor=(0, 1), loc=1, borderaxespad=0)`设置了第一个折线图的图例位置。
然后,使用`ax1.set_xlabel("hour")`和`ax1.set_ylabel("rain(mm)")`设置了横轴和纵轴的标签。
接着,通过`ax2 = ax1.twinx()`创建了第二个y轴对象`ax2`。
然后,使用`ax2.plot(timelist, rainPop, label="rainPop", color="b", linestyle='dotted')`绘制了第二个折线图,横轴为`timelist`,纵轴为`rainPop`,线条颜色为蓝色,线条样式为点线,并添加了图例标签"rainPop"。
最后,使用`ax2.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0)`设置了第二个折线图的图例位置。
最后一行的`plt.show()`用于显示绘制的图形。
self.ax1 = plt.subplot(self.gs[0, 0]) self.ax1.plot(vals) self.ax1.set_xlim(self.xlim) locs = self.ax1.get_xticks() locs[0] = self.xlim[0] locs[-1] = self.xlim[1] self.ax1.set_xticks(locs) self.ax1.use_sticky_edges = False self.ax1.set_title(f'Connected Clients Ratio') 单独输出
要单独输出这部分代码绘制的图形,可以使用 Matplotlib 库中的 pyplot 子库的 plot() 方法和相应的设置方法来创建和设置图形。例如,下面的代码将创建一个新的图形窗口,并在其中绘制一个线性图:
```
import matplotlib.pyplot as plt
# 创建新的图形窗口
fig = plt.figure()
# 绘制线性图
ax = fig.add_subplot(1, 1, 1)
ax.plot(vals)
ax.set_xlim(xlim)
locs = ax.get_xticks()
locs[0] = xlim[0]
locs[-1] = xlim[1]
ax.set_xticks(locs)
ax.use_sticky_edges = False
ax.set_title('Connected Clients Ratio')
# 显示图形
plt.show()
```
在这个例子中,代码创建了一个新的图形窗口,并使用 add_subplot() 方法创建一个 1x1 的子图,该子图被赋值给变量 ax。接下来,将 vals 序列传递给 plot() 方法来绘制线性图,并使用 set_xlim() 方法和 get_xticks() 方法来设置 x 轴的范围和刻度位置。然后,将 use_sticky_edges 属性设置为 False,这样就可以更好地控制图形的布局。最后,使用 set_title() 方法设置子图的标题。最后,使用 show() 方法显示整个图形。
阅读全文