SourceForge logo
SourceForge logo
Menu

matplotlib-users — Discussion related to using matplotlib

You can subscribe to this list here.

2003 Jan
Feb
Mar
Apr
May
(3)
Jun
Jul
Aug
(12)
Sep
(12)
Oct
(56)
Nov
(65)
Dec
(37)
2004 Jan
(59)
Feb
(78)
Mar
(153)
Apr
(205)
May
(184)
Jun
(123)
Jul
(171)
Aug
(156)
Sep
(190)
Oct
(120)
Nov
(154)
Dec
(223)
2005 Jan
(184)
Feb
(267)
Mar
(214)
Apr
(286)
May
(320)
Jun
(299)
Jul
(348)
Aug
(283)
Sep
(355)
Oct
(293)
Nov
(232)
Dec
(203)
2006 Jan
(352)
Feb
(358)
Mar
(403)
Apr
(313)
May
(165)
Jun
(281)
Jul
(316)
Aug
(228)
Sep
(279)
Oct
(243)
Nov
(315)
Dec
(345)
2007 Jan
(260)
Feb
(323)
Mar
(340)
Apr
(319)
May
(290)
Jun
(296)
Jul
(221)
Aug
(292)
Sep
(242)
Oct
(248)
Nov
(242)
Dec
(332)
2008 Jan
(312)
Feb
(359)
Mar
(454)
Apr
(287)
May
(340)
Jun
(450)
Jul
(403)
Aug
(324)
Sep
(349)
Oct
(385)
Nov
(363)
Dec
(437)
2009 Jan
(500)
Feb
(301)
Mar
(409)
Apr
(486)
May
(545)
Jun
(391)
Jul
(518)
Aug
(497)
Sep
(492)
Oct
(429)
Nov
(357)
Dec
(310)
2010 Jan
(371)
Feb
(657)
Mar
(519)
Apr
(432)
May
(312)
Jun
(416)
Jul
(477)
Aug
(386)
Sep
(419)
Oct
(435)
Nov
(320)
Dec
(202)
2011 Jan
(321)
Feb
(413)
Mar
(299)
Apr
(215)
May
(284)
Jun
(203)
Jul
(207)
Aug
(314)
Sep
(321)
Oct
(259)
Nov
(347)
Dec
(209)
2012 Jan
(322)
Feb
(414)
Mar
(377)
Apr
(179)
May
(173)
Jun
(234)
Jul
(295)
Aug
(239)
Sep
(276)
Oct
(355)
Nov
(144)
Dec
(108)
2013 Jan
(170)
Feb
(89)
Mar
(204)
Apr
(133)
May
(142)
Jun
(89)
Jul
(160)
Aug
(180)
Sep
(69)
Oct
(136)
Nov
(83)
Dec
(32)
2014 Jan
(71)
Feb
(90)
Mar
(161)
Apr
(117)
May
(78)
Jun
(94)
Jul
(60)
Aug
(83)
Sep
(102)
Oct
(132)
Nov
(154)
Dec
(96)
2015 Jan
(45)
Feb
(138)
Mar
(176)
Apr
(132)
May
(119)
Jun
(124)
Jul
(77)
Aug
(31)
Sep
(34)
Oct
(22)
Nov
(23)
Dec
(9)
2016 Jan
(26)
Feb
(17)
Mar
(10)
Apr
(8)
May
(4)
Jun
(8)
Jul
(6)
Aug
(5)
Sep
(9)
Oct
(4)
Nov
Dec
2017 Jan
(5)
Feb
(7)
Mar
(1)
Apr
(5)
May
Jun
(3)
Jul
(6)
Aug
(1)
Sep
Oct
(2)
Nov
(1)
Dec
2018 Jan
Feb
Mar
Apr
(1)
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
2020 Jan
Feb
Mar
Apr
May
(1)
Jun
Jul
Aug
Sep
Oct
Nov
Dec
2025 Jan
(1)
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
S M T W T F S


1
(9)
2
(11)
3
(13)
4
(1)
5
6
(1)
7
(1)
8
(3)
9
10
(13)
11
(6)
12
(3)
13
(1)
14
(14)
15
(2)
16
17
(7)
18
(16)
19
(2)
20
21
(3)
22
23
24
(1)
25
(1)
26
(1)
27
28
(7)
29
(6)
30
(9)
31
(5)


Showing results of 136

<< < 1 .. 4 5 6 (Page 6 of 6)
From: Michael D. <md...@st...> - 2013年10月02日 12:37:07
On 10/02/2013 05:35 AM, ajdcds wrote:
> I have a system that has Python(x,y)-2.6.6.2.exe installed.
> When running the script "file.py" the following error occurs:
>
> /Traceback (most recent call last):
> File "file.py", line xx, in <module>
> import <something>
> File "includes\something.py", line 31, in <module>
> import matplotlib.pyplot as plt
> File "C:\Python26\lib\site-packages\matplotlib\pyplot.py", line 95, in
> <module>
> new_figure_manager, draw_if_interactive, show = pylab_setup()
> File "C:\Python26\lib\site-packages\matplotlib\backends\__init__.py", line
> 25, in pylab_setup
> globals(),locals(),[backend_name])
> File "C:\Python26\lib\site-packages\matplotlib\backends\backend_qt4agg.py",
> line 12, in <module>
> from backend_qt4 import QtCore, QtGui, FigureManagerQT, FigureCanvasQT,\
> File "C:\Python26\lib\site-packages\matplotlib\backends\backend_qt4.py",
> line 18, in <module>
> import matplotlib.backends.qt4_editor.figureoptions as figureoptions
> File
> "C:\Python26\lib\site-packages\matplotlib\backends\qt4_editor\figureoptions.py",
> line 11, in <module>
> import matplotlib.backends.qt4_editor.formlayout as formlayout
> File
> "C:\Python26\lib\site-packages\matplotlib\backends\qt4_editor\formlayout.py",
> line 51, in <module>
> raise ImportError, "Warning: formlayout requires PyQt4 >v4.3"
> ImportError: Warning: formlayout requires PyQt4 >v4.3 /
>
> I think this error message is not related with the real problem, since this
> is just an hardcoded string that is displayed in case the import fails
> (formlayout.py):
> /try:
> from PyQt4.QtGui import QFormLayout
> except ImportError:
> raise ImportError, "Warning: formlayout requires PyQt4 >v4.3"/
>
> If I remove this error message the new error message is that he cannot find
> the DLL.
Can you copy-and-paste the exact error message? That will offer some clues.
Mike
-- 
 _
|\/|o _|_ _. _ | | \.__ __|__|_|_ _ _ ._ _
| ||(_| |(_|(/_| |_/|(_)(/_|_ |_|_)(_)(_)| | |
http://www.droettboom.com
From: ajdcds <aj...@ho...> - 2013年10月02日 09:35:42
I have a system that has Python(x,y)-2.6.6.2.exe installed.
When running the script "file.py" the following error occurs:
/Traceback (most recent call last): 
 File "file.py", line xx, in <module> 
 import <something> 
 File "includes\something.py", line 31, in <module> 
 import matplotlib.pyplot as plt 
 File "C:\Python26\lib\site-packages\matplotlib\pyplot.py", line 95, in
<module> 
 new_figure_manager, draw_if_interactive, show = pylab_setup() 
 File "C:\Python26\lib\site-packages\matplotlib\backends\__init__.py", line
25, in pylab_setup 
 globals(),locals(),[backend_name]) 
 File "C:\Python26\lib\site-packages\matplotlib\backends\backend_qt4agg.py",
line 12, in <module> 
 from backend_qt4 import QtCore, QtGui, FigureManagerQT, FigureCanvasQT,\ 
 File "C:\Python26\lib\site-packages\matplotlib\backends\backend_qt4.py",
line 18, in <module> 
 import matplotlib.backends.qt4_editor.figureoptions as figureoptions 
 File
"C:\Python26\lib\site-packages\matplotlib\backends\qt4_editor\figureoptions.py",
line 11, in <module> 
 import matplotlib.backends.qt4_editor.formlayout as formlayout 
 File
"C:\Python26\lib\site-packages\matplotlib\backends\qt4_editor\formlayout.py",
line 51, in <module> 
 raise ImportError, "Warning: formlayout requires PyQt4 >v4.3" 
ImportError: Warning: formlayout requires PyQt4 >v4.3 /
I think this error message is not related with the real problem, since this
is just an hardcoded string that is displayed in case the import fails
(formlayout.py):
/try:
 from PyQt4.QtGui import QFormLayout
except ImportError:
 raise ImportError, "Warning: formlayout requires PyQt4 >v4.3"/
If I remove this error message the new error message is that he cannot find
the DLL.
If I install matplotlib-1.0.1.win32-py2.6.exe then this error does not occur
anymore.
Could anyone please explain me what is the difference when the matplotlib is
installed via Python(x,y)
or when it is installed separately on top of Python(x,y)?
I saw that there are a few differences on User and System Environment
variable PATH, but I've tried
different combinations and was not able to get rid of this error when the
system does not have the
matplotlib-1.0.1.win32-py2.6.exe installed.
Thank you in advance for your support.
Kind regards,
Antonio
--
View this message in context: http://matplotlib.1069221.n5.nabble.com/Matplotlib-installation-with-Python-x-y-tp42149.html
Sent from the matplotlib - users mailing list archive at Nabble.com.
From: KURT P. <pet...@ms...> - 2013年10月01日 23:36:42
> Subject: Re: [Matplotlib-users] x axis non-uniform labeling (KURT PETERS)
> From: sm...@fu...
> Date: Tue, 1 Oct 2013 11:34:39 -0700
> CC: pmh...@gm...; mat...@li...
> To: pet...@ms...
> 
> 
> On Oct 1, 2013, at 8:59AM, KURT PETERS wrote:
> 
> > 
> > REPLY:
> > ============================================================
> > 
> > here's what SHOULD be happening
> > 
> > | 0 1 5 9 13 18 21 24 25 28
> > 3 | x
> > | x x
> > | x x
> > | x x
> > -1|_x__________________x_____
> > 1 2 3 4 5 6 7 8 9 10
> > 
> > How can I make that happen? Instead, MPL is autoranging the top axis. I don't want that I just want the actual labels to occur up there.
> > 
> > Kurt
> 
> Kurt,
> 
> Here is a self-contained example of what I think you are asking for:
> 
> {{{
> import matplotlib.pyplot as plt
> import numpy as np
> from matplotlib.ticker import FuncFormatter, MaxNLocator
> 
> simtimedata = np.array([0, 1, 5, 9, 13, 18, 21, 24, 25, 28, 31, 32, 41, 55, 56, 57])
> idatanp = np.array([-1,0, 1, 2, 3, 2, 1, 0, -1, -2, -3, -2, -1, 0, -1, -2])
> xdat = range(len(simtimedata))
> fig = plt.figure()
> 
> ax1 = fig.add_subplot(211)
> ax1.plot(xdat,idatanp)
> ax1.grid(True)
> ax2 = fig.add_subplot(212)
> ax2.plot(xdat, idatanp.real,'k-o')
> def index_to_label(i,dummy):
> if i >= 0 and i < len(simtimedata):
> return str(simtimedata[i])
> else:
> return ''
> 
> form = FuncFormatter(index_to_label)
> ax2.xaxis.set_major_formatter(form)
> 
> #ax2.set_title("time domain")
> ax2.grid(True)
> plt.show()
> }}}
> 
> You may also be interested in this question and answer on stackoverflow:
> http://stackoverflow.com/questions/3918028/how-do-i-plot-multiple-x-or-y-axes-in-matplotlib
> 
> -Sterling
> 
Thanks Sterling, 
That's exactly what I was looking for. I ended up creating a class because I wasn't comfortable using either a lambda function or simtimedata as a global variable (just a style issue). In case someone's been following along and wants the final code:
...
from matplotlib.ticker import Formatter
class MyFormatter(Formatter):
 def __init__(self, simtime):
 self.simtime = simtime
 def __call__(self,val,pos=0):
 if val >= 0 and val < len(self.simtime):
 return str(self.simtime[val])
 else:
 return ''
xdat=np.arange(0,10)
simtimedata = np.array([ 0, 1, 5, 9, 13, 18, 21, 24, 25, 28])
idatanp = np.array ([-1,0, 1, 2, 3, 2, 1, 0, -1, -2])
print idatanp.shape
print simtimedata.shape
print xdat.shape
fig = plt.figure()
intformatter = MyFormatter(simtimedata)
ax1 = fig.add_subplot(211)
ax1.plot(xdat,idatanp)
ax1.grid(True)
ax2 = fig.add_subplot(212)
ax2.plot(xdat, idatanp.real,'k-o')
ax2.xaxis.set_major_formatter(intformatter)
ax2.set_title("time domain")
ax2.grid(True)
plt.show()
 
 		 	 		 
From: Sterling S. <sm...@fu...> - 2013年10月01日 18:34:46
On Oct 1, 2013, at 8:59AM, KURT PETERS wrote:
> 
> REPLY:
> ============================================================
> 
> here's what SHOULD be happening
> 
> | 0 1 5 9 13 18 21 24 25 28
> 3 | x
> | x x
> | x x
> | x x
> -1|_x__________________x_____
> 1 2 3 4 5 6 7 8 9 10
> 
> How can I make that happen? Instead, MPL is autoranging the top axis. I don't want that I just want the actual labels to occur up there.
> 
> Kurt
Kurt,
Here is a self-contained example of what I think you are asking for:
{{{
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import FuncFormatter, MaxNLocator
simtimedata = np.array([0, 1, 5, 9, 13, 18, 21, 24, 25, 28, 31, 32, 41, 55, 56, 57])
idatanp = np.array([-1,0, 1, 2, 3, 2, 1, 0, -1, -2, -3, -2, -1, 0, -1, -2])
xdat = range(len(simtimedata))
fig = plt.figure()
ax1 = fig.add_subplot(211)
ax1.plot(xdat,idatanp)
ax1.grid(True)
ax2 = fig.add_subplot(212)
ax2.plot(xdat, idatanp.real,'k-o')
def index_to_label(i,dummy):
 if i >= 0 and i < len(simtimedata):
 return str(simtimedata[i])
 else:
 return ''
form = FuncFormatter(index_to_label)
ax2.xaxis.set_major_formatter(form)
#ax2.set_title("time domain")
ax2.grid(True)
plt.show()
}}}
You may also be interested in this question and answer on stackoverflow:
http://stackoverflow.com/questions/3918028/how-do-i-plot-multiple-x-or-y-axes-in-matplotlib
-Sterling
From: Benjamin R. <ben...@ou...> - 2013年10月01日 18:05:41
On Tue, Oct 1, 2013 at 1:55 PM, KURT PETERS <pet...@ms...> wrote:
>
>
> > Date: Tue, 1 Oct 2013 19:35:39 +0200
>
> > Subject: Re: [Matplotlib-users] x axis non-uniform labeling (KURT PETERS)
> > From: goy...@gm...
> > To: pet...@ms...
> > CC: pmh...@gm...; mat...@li...
>
> >
> > 2013年10月1日 KURT PETERS <pet...@ms...>:
> > > here's what SHOULD be happening
> > >
> > > | 0 1 5 9 13 18 21 24 25 28
> > > 3 | x
> > > | x x
> > > | x x
> > > | x x
> > > -1|_x__________________x_____
> > > 1 2 3 4 5 6 7 8 9 10
> > >
> > > How can I make that happen? Instead, MPL is autoranging the top axis. I
> > > don't want that I just want the actual labels to occur up there.
> >
> > Then just set the ticks and the tick labels of the axis:
> >
> > import numpy as np
> > import matplotlib.pyplot as plt
> > xdat=np.arange(1,11)
> > simtimedata = np.array([0, 1, 5, 9, 13, 18, 21, 24, 25, 28])
> > idatanp = np.array([-1,0, 1, 2, 3, 2, 1, 0, -1, -2])
> > ax1 = plt.subplot(111)
> > ax1.plot(xdat,idatanp)
> > ax2 = ax1.twiny()
> > ax2.set_xticks(range(len(xdat)))
> > ax2.set_xticklabels(simtimedata)
> > plt.show()
> >
> > Goyo
>
> Goyo,
> Thanks, the code below seems to work. The problem is that with
> "REAL/actual" data, I have SO many data points that each point is now
> labeled and it takes forever to render. And when it does render, I cannot
> read the axis because there are too many there. Is there a way to
> judiciously have it only display a certain number of values? Such as every
> 100th value?
> Kurt
> xdat=np.arange(1,11)
> simtimedata = np.array([0, 1, 5, 9, 13, 18, 21, 24, 25, 28])
> idatanp = np.array([-1,0, 1, 2, 3, 2, 1, 0, -1, -2])
> print idatanp.shape
> print simtimedata.shape
> print xdat.shape
> fig = plt.figure()
>
> ax1 = fig.add_subplot(211)
> ax1.plot(xdat,idatanp)
> ax1.grid(True)
> ax2 = fig.add_subplot(212)
> ax2.plot(xdat, idatanp.real,'k-o')
> ax2.set_xticks(xdat)
> ax2.set_xticklabels(simtimedata)
> #ax2.set_title("time domain")
> ax2.grid(True)
> plt.show()
>
The philosophy of matplotlib is to have smart defaults, but always allow
the user to override. Perhaps you are looking for a particular "ticker"?
http://matplotlib.org/api/ticker_api.html
I hope this helps!
Ben Root
From: Sterling S. <sm...@fu...> - 2013年10月01日 18:04:18
On Oct 1, 2013, at 11:01AM, Jody Klymak wrote:
> 
> On Oct 1, 2013, at 10:55 AM, KURT PETERS <pet...@ms...> wrote:
> 
>> Goyo,
>> Thanks, the code below seems to work. The problem is that with "REAL/actual" data, I have SO many data points that each point is now labeled and it takes forever to render. And when it does render, I cannot read the axis because there are too many there. Is there a way to judiciously have it only display a certain number of values? Such as every 100th value?
>> Kurt
>> 
>> ax2.set_xticks(xdat)
>> ax2.set_xticklabels(simtimedata)
> 
> ax2.set_xticks(xdat[::100])
> ax2.set_xticklabels(simtimedata[::100])
> 
> Cheers, Jody
> 
I thought that, too, but then he used the word 'judiciously'. I think that you want to change the xaxis major formatter so that it returns the indexed element of simtimedata as the label. Example to come in a moment.
-Sterling
From: Jody K. <jk...@uv...> - 2013年10月01日 18:02:04
On Oct 1, 2013, at 10:55 AM, KURT PETERS <pet...@ms...> wrote:
> Goyo,
> Thanks, the code below seems to work. The problem is that with "REAL/actual" data, I have SO many data points that each point is now labeled and it takes forever to render. And when it does render, I cannot read the axis because there are too many there. Is there a way to judiciously have it only display a certain number of values? Such as every 100th value?
> Kurt
> 
> ax2.set_xticks(xdat)
> ax2.set_xticklabels(simtimedata)
ax2.set_xticks(xdat[::100])
ax2.set_xticklabels(simtimedata[::100])
Cheers, Jody
--
Jody Klymak 
http://web.uvic.ca/~jklymak/
From: KURT P. <pet...@ms...> - 2013年10月01日 17:55:09
 
> Date: Tue, 1 Oct 2013 19:35:39 +0200
> Subject: Re: [Matplotlib-users] x axis non-uniform labeling (KURT PETERS)
> From: goy...@gm...
> To: pet...@ms...
> CC: pmh...@gm...; mat...@li...
> 
> 2013年10月1日 KURT PETERS <pet...@ms...>:
> > here's what SHOULD be happening
> >
> > | 0 1 5 9 13 18 21 24 25 28
> > 3 | x
> > | x x
> > | x x
> > | x x
> > -1|_x__________________x_____
> > 1 2 3 4 5 6 7 8 9 10
> >
> > How can I make that happen? Instead, MPL is autoranging the top axis. I
> > don't want that I just want the actual labels to occur up there.
> 
> Then just set the ticks and the tick labels of the axis:
> 
> import numpy as np
> import matplotlib.pyplot as plt
> xdat=np.arange(1,11)
> simtimedata = np.array([0, 1, 5, 9, 13, 18, 21, 24, 25, 28])
> idatanp = np.array([-1,0, 1, 2, 3, 2, 1, 0, -1, -2])
> ax1 = plt.subplot(111)
> ax1.plot(xdat,idatanp)
> ax2 = ax1.twiny()
> ax2.set_xticks(range(len(xdat)))
> ax2.set_xticklabels(simtimedata)
> plt.show()
> 
> Goyo
 Goyo, Thanks, the code below seems to work. The problem is that with "REAL/actual" data, I have SO many data points that each point is now labeled and it takes forever to render. And when it does render, I cannot read the axis because there are too many there. Is there a way to judiciously have it only display a certain number of values? Such as every 100th value?Kurtxdat=np.arange(1,11)
simtimedata = np.array([0, 1, 5, 9, 13, 18, 21, 24, 25, 28])
idatanp = np.array([-1,0, 1, 2, 3, 2, 1, 0, -1, -2])
print idatanp.shape
print simtimedata.shape
print xdat.shape
fig = plt.figure()
ax1 = fig.add_subplot(211)
ax1.plot(xdat,idatanp)
ax1.grid(True)
ax2 = fig.add_subplot(212)
ax2.plot(xdat, idatanp.real,'k-o')
ax2.set_xticks(xdat)
ax2.set_xticklabels(simtimedata)
#ax2.set_title("time domain")
ax2.grid(True)
plt.show() 		 	 		 
From: Goyo <goy...@gm...> - 2013年10月01日 17:35:46
2013年10月1日 KURT PETERS <pet...@ms...>:
> here's what SHOULD be happening
>
> | 0 1 5 9 13 18 21 24 25 28
> 3 | x
> | x x
> | x x
> | x x
> -1|_x__________________x_____
> 1 2 3 4 5 6 7 8 9 10
>
> How can I make that happen? Instead, MPL is autoranging the top axis. I
> don't want that I just want the actual labels to occur up there.
Then just set the ticks and the tick labels of the axis:
import numpy as np
import matplotlib.pyplot as plt
xdat=np.arange(1,11)
simtimedata = np.array([0, 1, 5, 9, 13, 18, 21, 24, 25, 28])
idatanp = np.array([-1,0, 1, 2, 3, 2, 1, 0, -1, -2])
ax1 = plt.subplot(111)
ax1.plot(xdat,idatanp)
ax2 = ax1.twiny()
ax2.set_xticks(range(len(xdat)))
ax2.set_xticklabels(simtimedata)
plt.show()
Goyo
From: KURT P. <pet...@ms...> - 2013年10月01日 15:59:33
It's not really clear to me what you're trying to do. But the rounding of the axes limits is an expected behavior of matplotlib. You can set them manually if you like. Also, I think this achieves what you want and is much simpler.
import numpy as npimport matplotlib.pyplot as pltxdat=np.arange(1,11)simtimedata = np.array([0, 1, 5, 9, 13, 18, 21, 24, 25, 28])
idatanp = np.array([-1,0, 1, 2, 3, 2, 1, 0, -1, -2])
fig, (ax1, ax2) = plt.subplots(nrows=2, sharey=True) ax1.plot(xdat,idatanp)ax2.plot(simtimedata, idatanp,'k--')
ax2.set_xlim([simtimedata.min(), simtimedata.max()])
REPLY:============================================================ here's what SHOULD be happening | 0 1 5 9 13 18 21 24 25 28 3 | x | x x | x x | x x-1|_x__________________x_____ 1 2 3 4 5 6 7 8 9 10 How can I make that happen? Instead, MPL is autoranging the top axis. I don't want that I just want the actual labels to occur up there. Kurt
 		 	 		 
From: Paul H. <pmh...@gm...> - 2013年10月01日 13:39:52
On Mon, Sep 30, 2013 at 4:50 PM, KURT PETERS <pet...@ms...> wrote:
> That doesn't seem to fix it. What I'm expecting is at the top, 28 should
> correspond to the value -2. Instead it puts a 30 there.
> Kurt
>
>
It's not really clear to me what you're trying to do. But the rounding of
the axes limits is an expected behavior of matplotlib. You can set them
manually if you like. Also, I think this achieves what you want and is much
simpler.
import numpy as np
import matplotlib.pyplot as plt
xdat=np.arange(1,11)
simtimedata = np.array([0, 1, 5, 9, 13, 18, 21, 24, 25, 28])
idatanp = np.array([-1,0, 1, 2, 3, 2, 1, 0, -1, -2])
fig, (ax1, ax2) = plt.subplots(nrows=2, sharey=True)
ax1.plot(xdat,idatanp)
ax2.plot(simtimedata, idatanp,'k--')
ax2.set_xlim([simtimedata.min(), simtimedata.max()])
fig.tight_layout()

Showing results of 136

<< < 1 .. 4 5 6 (Page 6 of 6)
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /