繁体   English   中英

Python - Matplotlib 未显示双 plot 上的任何轴标签

[英]Python - Matplotlib not showing any axis labels on twin plot

我在这个 plot 上看不到任何标签,我为每个轴指定了标签。 同样的事情发生在 x 轴显示为 0,2,4,而不是 0,1,2,3,4 等。作为参考 - 我在我的 PySimpleGUI 代码中使用它:

import matplotlib.pyplot as plt

data1= [0,1,2,3,4,5,6,7,8,9]
data2= [10,20,30,40,50,60,70,133,121,123]
data3=[100,324,121,432,232,543,332,543,534,122]
data4=[100,312,111,111,322,443,545,122,345,122]
#plt.style.use('dark_background')
title="my graph"
plt.figure(figsize=(8,5))
plt.style.use('ggplot')
plt.rcParams['axes.facecolor'] ='white'
plt.rcParams['font.size'] = '8'
plt.bar(data1,data2, color= 'blue' ,width=0.5,label="data2")
plt.twinx()
plt.plot(data1, data3, label="data 3 label")
plt.plot(data1, data4,label="data4",color='green')
plt.xlabel("my x axis label",fontsize =8)
plt.title(title,fontsize=8)
plt.tight_layout()
fig = plt.gcf()
print(fig)

在此处绘制示例 请有人能指出我正确的方向吗?

谢谢

使用面向对象的接口进行一些清理:

plt.style.use('ggplot')
plt.rcParams['axes.facecolor'] ='white'
plt.rcParams['font.size'] = '8'

fig, ax = plt.subplots(figsize=(8, 5))

ax.bar(data1,data2, color= 'blue' ,width=0.5,label="data2")

ax2 = ax.twinx()
ax2.plot(data1, data3, label="data 3 label")
ax2.plot(data1, data4,label="data4",color='green')

ax.set_xlabel("my x axis label",fontsize =8)
ax.set_xticks(data1)
ax.set_title(title,fontsize=8)

fig.tight_layout()

Output:

在此处输入图像描述

或许更好地使用MultipleLocator作为刻度位置(归功于@JohanC 的想法):

from matplotlib.ticker import MultipleLocator
...
ax.xaxis.set_major_locator(MultipleLocator(1))

尝试使用 plt.axes() 来分隔它,如图

import matplotlib.pyplot as plt

data1= [0,1,2,3,4,5,6,7,8,9]
data2= [10,20,30,40,50,60,70,133,121,123]
data3=[100,324,121,432,232,543,332,543,534,122]
data4=[100,312,111,111,322,443,545,122,345,122]
#plt.style.use('dark_background')
title="my graph"
plt.figure(figsize=(8,5))
plt.style.use('ggplot')
plt.rcParams['axes.facecolor'] ='white'
plt.rcParams['font.size'] = '8'
ax = plt.axes()
ax.bar(data1,data2, color= 'blue' ,width=0.5,label="data2")
ax2 = plt.twinx()
ax2.plot(data1, data3, label="data 3 label")
ax2.plot(data1, data4,label="data4",color='green')
ax2.set_xlabel("my x axis label",fontsize =8)
plt.title(title,fontsize=8)
plt.tight_layout()
fig = plt.gcf()
print(fig)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM