1樓:大話殘劍
from pylab import *
mpl.rcparams['font.sans-serif'] = ['simhei'] #指定預設字型
mpl.rcparams['axes.unicode_minus'] = false #解決儲存影象是負號'-'顯示為方塊的問題
t = arange(-5*pi, 5*pi, 0.01)y = sin(t)/t
plt.plot(t, y)
plt.title('這裡寫的是中文')
plt.xlabel('x座標')
plt.ylabel('y座標')
plt.show()
matplotlib的預設配置檔案中所使用的字型無法正確顯示中文。為了讓圖表能正確顯示中文,可以有幾種解決方案。
1、在程式中直接指定字型。
2、在程式開頭修改配置字典rcparams。
3、修改配置檔案。
2樓:天煞
plt.xticks(fontproperties="stsong")
加一段**
python繪圖如何顯示中文標題
3樓:黃昏地平線的你
**新增如下就可以了
from pylab import *
# 解決座標軸負刻度亂碼問題
rcparams['axes.unicode_minus'] = false
# 解決中文亂碼問題
rcparams['font.sans-serif'] = ['simhei']
請教如何自定義python的matplotlib中的x軸刻度的問題
4樓:從頭開始自學
初學matplotlib,請大家多多包涵
小弟的目的是,早3點到晚10點之間,每30秒監控一次主機的cpu、記憶體使用率等指標,並繪製成折線圖。
圖的橫座標為時間(時分秒),縱座標為監控指標
以cpu監控為例,目前小弟的做法是,生成兩個list,乙個存datetime.datetime格式的時間(年月日時分秒),另外乙個list存我的監控結果。
然而,作圖的時候,預設的圖形橫座標時間間隔太短,畫出的線太密,效果可如下圖:
matplotlib提供基本的介面:
from matplotlib.dates import autodatelocator, dateformatter autodates = autodatelocator() yearsfmt = dateformatter('%y-%m-%d %h:%m:
%s') figure.autofmt_xdate() #設定x軸時間外觀 ax.xaxis.
set_major_locator(autodates) #設定時間間隔 ax.xaxis.set_major_formatter(yearsfmt) #設定時間顯示格式 ax.
set_xticks() #設定x軸間隔 ax.set_xlim() #設定x軸範圍
python的 matplotlib畫圖,怎麼把子圖的每個橫座標顯示出來? 5
5樓:匿名使用者
import matplotlib.pyplot as plt
plt.rcparams['font.sans-serif'] = ['simhei'] # 用來正常顯示中文標籤
plt.rcparams['axes.unicode_minus'] = false # 用來正常顯示負號
fig = plt.figure(figsize=(20, 20), dpi=80)
ax1 = fig.add_subplot(2,2,1)
x = range(5)
y = [2, 2, 5, 2, 4]
s = ['數量1', '數量2', '數量3', '數量4', '數量5']
plt.bar(x, y, width=0.5)
plt.xticks(x, s, rotation=270)
plt.xlabel('資料情況' )
plt.ylabel('數量(個)')
for xl, yl in zip(x, y):
plt.text(xl, yl+0.3, str(yl), ha='center', va='bottom', fontsize=10.5)
ax2 = fig.add_subplot(2,2,2)
plt.bar(range(4), [3, 4,2,3], width=0.3)
ax3 = fig.add_subplot(2,2,3)
plt.bar(range(4), [3, 4,2,3], width=0.3)
ax4 = fig.add_subplot(2,2,4)
plt.bar(range(4), [3, 4,2,3], width=0.3)
plt.show()
6樓:匿名使用者
ax = subplots(nrows,ncols,sharex,sharey,squeeze,subplot_kw,gridspec_kw,**fig_kw)
建立畫布和子圖。
nrows和ncols表示將畫布分割成幾行幾列 ,
sharex和sharey表是共用xy軸的設定。
squeeze bool
a.預設引數為true:額外的維度從返回的axes(軸)物件中擠出,對於n*1或1*n個子圖,返回乙個1維陣列,對於n*m,n>1和m>1返回乙個2維陣列。
b.為false,不進行擠壓操作:返回乙個元素為axes例項的2維陣列,即使它最終是1x1。
subplot_kw:字典型別,可選引數。把字典的關鍵字傳遞給add_subplot()來建立每個子圖。
subplot_kw:字典型別,可選引數。把字典的關鍵字傳遞給add_subplot()來建立每個子圖。
gridspec_kw:字典型別,可選引數。把字典的關鍵字傳遞給gridspec建構函式建立子圖放在網格裡(grid)。
**fig_kw:把所有詳細的關鍵字引數傳給figure()函式。
可見你沒有辦法單獨設定某個子圖的ax的。
7樓:匿名使用者
首先你得把**放上來,別人才能回答呀
8樓:匿名使用者
我也表示想知道,你解決了嗎
9樓:匿名使用者
在python中使用matplotlib畫圖,預設橫座標都是由小到大(1,2,3,4,5),但我現在專案特殊需求,想讓橫座標值由大到小逆序顯示(5,4,3,2,1),如何實現呢?
import matplotlib.pyplot as pltplt.figure()
ax1 = plt.subplot(121)ax2 = plt.subplot(122)xlist = [1,2,3,4,5]
ylist = [10,20,30,40,50]plt.sca(ax1)
plt.title("test x label")plt.xlabel("x")
plt.ylabel("y")
plot1, = plt.plot(xlist,ylist,'ro')
plt.show()
python matlibplot 畫圖控制對數座標刻度顯示
10樓:不扶
你試試下面這句指令,主要是subsy控制的,你的那個指令是控制x軸的,並且不太好使。我試了下面這個還挺好使的。
ax.set_yscale('log',nonposy='mask',subsy=[0])
python matplotlib怎麼讓x軸只顯示固定個數的標籤
11樓:ice傻西
plt.xticks(list(x)[::3], _xtick_labels[::3])
3是每隔3個顯示一次,你要顯示6個自行計算
12樓:匿名使用者
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#演示matplotlib中設定座標軸主刻度標籤和次刻度標籤.
#對於次刻度顯示,如果要使用預設設定只要matplotlib.pyplot.minorticks_on()
from pylab import *
from matplotlib.ticker import multiplelocator
from matplotlib.ticker import formatstrformatter
#將x主刻度標籤設定為20的倍數(也即以 20為主刻度單位其餘可類推)
xmajorlocator = multiplelocator(20);
#設定x軸標籤文字的格式
xmajorformatter = formatstrformatter('%3.1f')
#將x軸次刻度標籤設定為5的倍數
xminorlocator = multiplelocator(5)
#設定y 軸的主刻度間隔及相應的刻度間隔顯示格式
#將y軸主刻度標籤設定為1.0的倍數
ymajorlocator = multiplelocator(1.0)
#設定y軸標籤文字的格式
ymajorformatter = formatstrformatter('%1.1f')
#將此y軸次刻度標籤設定為0.2的倍數
yminorlocator = multiplelocator(0.2)
t = arange(1.0, 100.0, 1)
s=t*exp(-t*1.3)+2*sqrt(t)
#注意:一般都在ax中設定,不再plot中設定
ax = subplot(111)
plot(t,s,'--r*')
#設定主刻度標籤的位置,標籤文字的格式
ax.xaxis.set_major_locator(xmajorlocator)
ax.xaxis.set_major_formatter(xmajorformatter)
ax.yaxis.set_major_locator(ymajorlocator)
ax.yaxis.set_major_formatter(ymajorformatter)
#顯示次刻度標籤的位置,沒有標籤文字
ax.xaxis.set_minor_locator(xminorlocator)
ax.yaxis.set_minor_locator(yminorlocator)
ax.xaxis.grid(true, which='major') #x座標軸的網格使用主刻度
ax.yaxis.grid(true, which='minor') #y座標軸的網格使用次刻度
show()
13樓:匿名使用者
可以先根據您的螢幕解析度,使用形參dpi向figure()傳遞該解析度
import matplotlib.pyplot as plt#your code
fig = plt.figure(dpi=128,figsize = (10,6))
fig.autofmt_xdate()#繪製傾斜的日期標籤,以免彼此重疊。