python - Python - Matplotlib 未在孪生图上显示任何轴标签
问题描述
我在该图上看不到任何标签,并且我为每个轴指定了标签。同样的事情发生在 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()
输出:
也许更好地MultipleLocator
用于刻度位置(归功于@JohanC 的想法):
from matplotlib.ticker import MultipleLocator
...
ax.xaxis.set_major_locator(MultipleLocator(1))
推荐阅读
- html - CSS保留空间到下一行
- sql - 如何使用 SQL 获取最后付款日期
- multidimensional-array - 如何使用ndarray从Rust中的一维数组中获取一个二维窗口数组?
- reactjs - TextInput onChangeText 设置 useState 值在 React Native Testing with Enzyme 中不起作用
- java - 显示 3 个随机图像,在 Java 中没有双重显示?
- java - 从命令提示符运行 java 的问题
- java - 我可以使用 java 在 Instagram 关注者/关注窗口上进行向下滚动操作吗?
- ruby - 由于 NoMethod 错误和与我的 .gemspec 文件相关的问题,无法发布我的 Ruby gem
- javascript - 汉可以在单击按钮时增加setTimeout函数中的时间值吗?
- javascript - 无法使用 jquery 在输入字段中获取 Woocommerce 计费电话