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

Showing 11 results of 11

From: Ondřej Č. <ond...@gm...> - 2013年05月03日 18:52:29
On Fri, May 3, 2013 at 12:41 PM, Ondřej Čertík <ond...@gm...> wrote:
> Hi,
>
> As part of building matplotlib for the one python based distribution [1],
I meant to say "for one python distribution", not "the one"...
Ondrej
From: Ondřej Č. <ond...@gm...> - 2013年05月03日 18:41:22
Hi,
As part of building matplotlib for the one python based distribution [1],
I want to always link against our own version of libpng, even if there
is some other systemwide version available. I am on linux (Ubuntu).
Currently, here is what I am doing:
CFLAGS="-I$PNG/include -I$FREETYPE/include
-I$FREETYPE/include/freetype2" LDFLAGS="-L$FREETYPE/lib -L$PNG/lib
-Wl,-rpath=$PNG/lib" $PYTHON/bin/python setup.py build
$PYTHON/bin/python setup.py install
Where $PNG and $FREETYPE points to our own versions. On a computer
with no systemwide version of png, this works great. Question:
1) If I don't specify the -rpath option, then libpng.so will fail to
be found at runtime. Is there any other recommended way to go around
this? I don't want to use LD_LIBRARY_PATH.
On a computer with systemwide version available, unfortunately the
systemwide version gets picked up instead. I think it's because of
this:
pkg-config --libs --cflags libpng
-I/usr/include/libpng12 -lpng12
so matplotlib simply calls this (right?) and uses the systemwide
version. Question:
2) How do I force matplotlib to use my own version instead?
I would highly appreciate any input, especially on 2). We have our own
issue open for this at [2] if you are interested for the background.
The merged mpl PR [3] is a little related, but doesn't answer my
questions.
Thanks,
Ondrej
[1] https://github.com/hashdist/python-hpcmp2/
[2] https://github.com/hashdist/python-hpcmp2/issues/53
[3] https://github.com/matplotlib/matplotlib/pull/1884
From: Felix P. <fe...@ne...> - 2013年05月03日 16:05:18
H, I'm using sfmath, too. I actually wrote a helper function to switch fonts. The preambles are the result of long-term trial and error. Normally, my preambles include some more custom commands which I left out here because they would be distracting. I always wondered why matplotlib doesn't do this kind of font switching out of the box.
def setfont(font=font_default,unicode=True):
 r"""
 Set Matplotlibs rcParams to use LaTeX for font rendering.
 Revert all changes by calling rcdefault() from matplotlib.
 
 Parameters:
 -----------
 font: string
 "Helvetica"
 "Times"
 "Computer Modern"
 
 usetex: Boolean
 Use unicode. Default: False. 
 """
 
 # Use TeX for all figure text!
 plt.rc('text', usetex=True)
 font = font.lower().replace(" ","")
 if font == 'times':
 # Times
 font = {'family':'serif', 'serif':['Times']}
 preamble = r"""
 \usepackage{color}
 \usepackage{mathptmx}
 """
 elif font == 'helvetica':
 # Helvetica
 # set serif, too. Otherwise setting to times and then
 # Helvetica causes an error.
 font = {'family':'sans-serif','sans-serif':['Helvetica'],
 'serif':['cm10']}
 preamble = r"""
 \usepackage{color}
 \usepackage[tx]{sfmath}
 \usepackage{helvet}
 """
 else:
 # Computer modern serif
 font = {'family':'serif', 'serif':['cm10']}
 preamble = r"""
 \usepackage{color}
 """
 
 if unicode:
 # Unicode for Tex
 #preamble = r"""\usepackage[utf8]{inputenc}""" + preamble
 # inputenc should be set automatically
 plt.rcParams['text.latex.unicode']=True
 
 #print font, preamble
 plt.rc('font',**font)
 plt.rcParams['text.latex.preamble'] = preamble
Am 03.05.2013 um 16:08 schrieb Juergen Hasch <py...@el...>:
>> 
>> The solution I use when I want all sans-serif out of TeX is to use the cmbright package, which can be turned on by adding:
>> 
>> rc('text.latex', preamble=r'\usepackage{cmbright}')
>> 
>> That may require installing the cmbright LaTeX package if you don't already have it.
> 
> I am using the sfmath package for this purpose.
> 
> There is a nice comparision of the different approaches to get sans-serif math fonts at the bottom of the sfmath page: 
> http://dtrx.de/od/tex/sfmath.html
> 
> 
> 
> ------------------------------------------------------------------------------
> Get 100% visibility into Java/.NET code with AppDynamics Lite
> It's a free troubleshooting tool designed for production
> Get down to code-level detail for bottlenecks, with <2% overhead.
> Download for free and get started troubleshooting in minutes.
> http://p.sf.net/sfu/appdyn_d2d_ap2
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
From: Felix P. <fe...@ne...> - 2013年05月03日 15:55:01
Some output using the different settings in the functions I just sent. As you can see the only problem are greek letters and some math symbols. It may be possible to improve this situation using xetex (http://matplotlib.org/users/pgf.html), but I did not try this out yet.
Am 03.05.2013 um 17:38 schrieb Felix Patzelt <fe...@ne...>:
> H, I'm using sfmath, too. I actually wrote a helper function to switch fonts. The preambles are the result of long-term trial and error. Normally, my preambles include some more custom commands which I left out here because they would be distracting. I always wondered why matplotlib doesn't do this kind of font switching out of the box.
> 
> def setfont(font=font_default,unicode=True):
> r"""
> Set Matplotlibs rcParams to use LaTeX for font rendering.
> Revert all changes by calling rcdefault() from matplotlib.
> 
> Parameters:
> -----------
> font: string
> "Helvetica"
> "Times"
> "Computer Modern"
> 
> usetex: Boolean
> Use unicode. Default: False. 
> """
> 
> # Use TeX for all figure text!
> plt.rc('text', usetex=True)
> 
> font = font.lower().replace(" ","")
> if font == 'times':
> # Times
> font = {'family':'serif', 'serif':['Times']}
> preamble = r"""
> \usepackage{color}
> \usepackage{mathptmx}
> """
> elif font == 'helvetica':
> # Helvetica
> # set serif, too. Otherwise setting to times and then
> # Helvetica causes an error.
> font = {'family':'sans-serif','sans-serif':['Helvetica'],
> 'serif':['cm10']}
> preamble = r"""
> \usepackage{color}
> \usepackage[tx]{sfmath}
> \usepackage{helvet}
> """
> else:
> # Computer modern serif
> font = {'family':'serif', 'serif':['cm10']}
> preamble = r"""
> \usepackage{color}
> """
> 
> if unicode:
> # Unicode for Tex
> #preamble = r"""\usepackage[utf8]{inputenc}""" + preamble
> # inputenc should be set automatically
> plt.rcParams['text.latex.unicode']=True
> 
> #print font, preamble
> plt.rc('font',**font)
> plt.rcParams['text.latex.preamble'] = preamble
> 
> 
> Am 03.05.2013 um 16:08 schrieb Juergen Hasch <py...@el...>:
> 
>>> 
>>> The solution I use when I want all sans-serif out of TeX is to use the cmbright package, which can be turned on by adding:
>>> 
>>> rc('text.latex', preamble=r'\usepackage{cmbright}')
>>> 
>>> That may require installing the cmbright LaTeX package if you don't already have it.
>> 
>> I am using the sfmath package for this purpose.
>> 
>> There is a nice comparision of the different approaches to get sans-serif math fonts at the bottom of the sfmath page: 
>> http://dtrx.de/od/tex/sfmath.html
>> 
>> 
>> 
>> ------------------------------------------------------------------------------
>> Get 100% visibility into Java/.NET code with AppDynamics Lite
>> It's a free troubleshooting tool designed for production
>> Get down to code-level detail for bottlenecks, with <2% overhead.
>> Download for free and get started troubleshooting in minutes.
>> http://p.sf.net/sfu/appdyn_d2d_ap2
>> _______________________________________________
>> Matplotlib-users mailing list
>> Mat...@li...
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
> 
From: Paul H. <pmh...@gm...> - 2013年05月03日 15:31:06
On Fri, May 3, 2013 at 6:17 AM, Michael Droettboom <md...@st...> wrote:
> On 05/02/2013 03:16 PM, Paul Hobson wrote
>
> I now see that this was more of TeX issue than an MPL configuration
> issue. Your help prompted me to find this solution (similar to yours):
> mpl.rcParams['text.latex.preamble'] = [
> r'\usepackage{siunitx}', # i need upright \micro symbols, but you
> need...
> r'\sisetup{detect-all}', # ...this to force siunitx to actually
> use your fonts
> r'\usepackage{helvet}', # set the normal font here
> r'\usepackage{sansmath}', # load up the sansmath so that math ->
> helvet
> r'\sansmath'] # <- tricky! -- gotta actually tell tex to use!
>
>
> Wow. That's some serious TeX voodoo magic! Want to work that into an
> example that we could include in the docs?
>
> Cheers,
> Mike
>
Gladly. I'll try to find time to cook up PR building off of the existing
example over the weekend.
-paul
From: Juergen H. <py...@el...> - 2013年05月03日 14:08:05
>
> The solution I use when I want all sans-serif out of TeX is to use the cmbright package, which can be turned on by adding:
>
> rc('text.latex', preamble=r'\usepackage{cmbright}')
>
> That may require installing the cmbright LaTeX package if you don't already have it.
I am using the sfmath package for this purpose.
There is a nice comparision of the different approaches to get sans-serif math fonts at the bottom of the sfmath page: 
http://dtrx.de/od/tex/sfmath.html
From: Werner F. B. <wer...@fr...> - 2013年05月03日 13:56:39
Mike,
On 03/05/2013 15:14, Michael Droettboom wrote:
> FWIW: Matplotlib uses the older buffer interface because that is what 
> the older version of wx used (as well as other GUI toolkits). It 
> would be nice to move to the new memoryview objects, but all of the 
> GUI frameworks will need to move in tandem...
agg.bufferNEW_rgba or something along those lines and then GUI 
frameworks could move when they want/can, or would that create to big of 
an overhead on MPL side.
Werner
From: Michael D. <md...@st...> - 2013年05月03日 13:17:51
On 05/02/2013 03:16 PM, Paul Hobson wrote:
>
> On Thu, May 2, 2013 at 11:19 AM, Michael Droettboom <md...@st... 
> <mailto:md...@st...>> wrote:
>
> I think the confusion here stems from the fact that you're mixing
> TeX and non-TeX font commands.
>
> This turns on TeX mode, so all of the text is rendered with an
> external TeX installation:
>
> rc('text', usetex=True)
>
> In this line, setting it to sans-serif will get passed along to
> TeX, but a specific ttf font name can not be used by TeX, so the
> second part (involving Helvetica) is ignored. And setting the
> default body text in TeX does not (by default) change the math
> font. This is (unfortunately standard TeX behavior).
>
> rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
>
> This affects the font set used by matplotlib's internal mathtext
> renderer, and has no effect on TeX:
>
> rc('mathtext', fontset='stixsans')
>
> The solution I use when I want all sans-serif out of TeX is to use
> the cmbright package, which can be turned on by adding:
>
> rc('text.latex', preamble=r'\usepackage{cmbright}')
>
> That may require installing the cmbright LaTeX package if you
> don't already have it.
>
> I know all this stuff is confusing, but providing a flat interface
> over both the internal text rendering and the TeX rendering isn't
> really possible -- they have different views of the world -- and
> I'm actually not sure it's desirable. Though I wonder if we
> couldn't make it more obvious (somehow) when the user is mixing
> configuration that applies to the different contexts.
>
> Mike
>
>
> Mike,
>
> Thanks for the guidance. I know this stuff is complicated and the work 
> everyone has put into it to make it work is fantastic.
>
> I now see that this was more of TeX issue than an MPL configuration 
> issue. Your help prompted me to find this solution (similar to yours):
> mpl.rcParams['text.latex.preamble'] = [
> r'\usepackage{siunitx}', # i need upright \micro symbols, but 
> you need...
> r'\sisetup{detect-all}', # ...this to force siunitx to 
> actually use your fonts
> r'\usepackage{helvet}', # set the normal font here
> r'\usepackage{sansmath}', # load up the sansmath so that math 
> -> helvet
> r'\sansmath'] # <- tricky! -- gotta actually tell tex to use!
Wow. That's some serious TeX voodoo magic! Want to work that into an 
example that we could include in the docs?
Cheers,
Mike
From: Michael D. <md...@st...> - 2013年05月03日 13:14:19
FWIW: Matplotlib uses the older buffer interface because that is what 
the older version of wx used (as well as other GUI toolkits). It would 
be nice to move to the new memoryview objects, but all of the GUI 
frameworks will need to move in tandem...
Mike
On 04/27/2013 06:23 PM, Werner F. Bruhin wrote:
> Hi Michael,
>
> On 26/04/2013 14:40, Michael Droettboom wrote:
>> On 04/26/2013 02:57 AM, Werner F. Bruhin wrote:
>>> Hi,
>>>
>>> Anyone can provide some info on what "agg.buffer_rgba" returns and 
>>> maybe
>>> even some suggestion on how to resolve this issue in the wxagg backend.
>> It returns a Python buffer object on Python 2, though on Python 3 it is
>> a memoryview, since buffer was deprecated. Perhaps wx is also doing
>> something different depending on the version of Python.
> As of Phoenix 2.9.5.81-r73873 matplot works with Phoenix, here is 
> Robin Dunn's comment to the change he did on Phoenix with regards to 
> the buffer handling.
>
> Quote
>
> The new buffer APIs go as far back as 2.6, IIRC, and the memoryview 
> and bytearray object types are available in 2.7 in addition to 3.x and 
> that I what I'm using in Phoenix. I would have expected MPL to do so 
> also since numpy is an integral part of MPL and the new buffer 
> interface was basically designed for and by numpy...
>
> Anyway, while double checking all this I realized that it would not be 
> hard for me to accept old or new buffer objects for source buffers 
> (I'll still use memoryviews or bytearrays when on the producer side of 
> things) so try again after the next snapshot build. My unittests with 
> array.arrrays started working after the change so I expect that MPL's 
> rgba buffer should work too.
>
> EndQuote
>
> Enclosed is the patch for backend_wx.py and for embedding_in_wx5.py 
> which I used for testing, in the later I use wxversion.select to force 
> selection of a particular version - I think the distribution should 
> still just use ensureMinimal.
>
> FYI, documentation for wxPython Phoenix are here:
> http://wxpython.org/Phoenix/docs/html/index.html
>
> And snapshots can be found here:
> http://wxpython.org/Phoenix/snapshot-builds/
>
> I tested only on Python 2.7.2 on Windows 7.
>
> Werner
>
>
> ------------------------------------------------------------------------------
> Try New Relic Now & We'll Send You this Cool Shirt
> New Relic is the only SaaS-based application performance monitoring service
> that delivers powerful full stack analytics. Optimize and monitor your
> browser, app, & servers with just a few lines of code. Try New Relic
> and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr
>
>
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
From: Michael D. <md...@st...> - 2013年05月03日 13:13:23
Would you mind submitting this as a pull request?
Mike
On 04/27/2013 06:23 PM, Werner F. Bruhin wrote:
> Hi Michael,
>
> On 26/04/2013 14:40, Michael Droettboom wrote:
>> On 04/26/2013 02:57 AM, Werner F. Bruhin wrote:
>>> Hi,
>>>
>>> Anyone can provide some info on what "agg.buffer_rgba" returns and 
>>> maybe
>>> even some suggestion on how to resolve this issue in the wxagg backend.
>> It returns a Python buffer object on Python 2, though on Python 3 it is
>> a memoryview, since buffer was deprecated. Perhaps wx is also doing
>> something different depending on the version of Python.
> As of Phoenix 2.9.5.81-r73873 matplot works with Phoenix, here is 
> Robin Dunn's comment to the change he did on Phoenix with regards to 
> the buffer handling.
>
> Quote
>
> The new buffer APIs go as far back as 2.6, IIRC, and the memoryview 
> and bytearray object types are available in 2.7 in addition to 3.x and 
> that I what I'm using in Phoenix. I would have expected MPL to do so 
> also since numpy is an integral part of MPL and the new buffer 
> interface was basically designed for and by numpy...
>
> Anyway, while double checking all this I realized that it would not be 
> hard for me to accept old or new buffer objects for source buffers 
> (I'll still use memoryviews or bytearrays when on the producer side of 
> things) so try again after the next snapshot build. My unittests with 
> array.arrrays started working after the change so I expect that MPL's 
> rgba buffer should work too.
>
> EndQuote
>
> Enclosed is the patch for backend_wx.py and for embedding_in_wx5.py 
> which I used for testing, in the later I use wxversion.select to force 
> selection of a particular version - I think the distribution should 
> still just use ensureMinimal.
>
> FYI, documentation for wxPython Phoenix are here:
> http://wxpython.org/Phoenix/docs/html/index.html
>
> And snapshots can be found here:
> http://wxpython.org/Phoenix/snapshot-builds/
>
> I tested only on Python 2.7.2 on Windows 7.
>
> Werner
>
>
> ------------------------------------------------------------------------------
> Try New Relic Now & We'll Send You this Cool Shirt
> New Relic is the only SaaS-based application performance monitoring service
> that delivers powerful full stack analytics. Optimize and monitor your
> browser, app, & servers with just a few lines of code. Try New Relic
> and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr
>
>
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
From: Yasin S. B. <yas...@gm...> - 2013年05月03日 12:03:41
Hi.
i am using ListedColormap with ScalarMappable, to map data ranges, without
using a norm. But i dont know if what i am doing is a good thing or not.
Here's the snippet:
----------------------------------------------------------------------
from matplotlib import pyplot as plt
from matplotlib import colors, cm
cl = ["#8080FF", #purple
 "#40C0FF", #blue
 "#00FFFF", #cyan
 "#00FF00", #green
 "#FFFF00", #yellow
 "#FF8000", #orange
 "#FF0000"] #red
cmap = colors.ListedColormap(cl)
data = np.array([np.arange(0, 5, 10, 15, 20, 25, 30, 35, 40, 45)])
sm = cm.ScalarMappable(cmap=cmap)
sm.set_clim(vmin=5, vmax=40) #7 colors, max-min=35
rgba = sm.to_rgba(data, bytes=True)
plt.imshow(rgba, interpolation="nearest")
plt.show()
----------------------------------------------------------------------
this produces output (first letters of color list):
"p, p, b, c, g, y, o, r, r, r"
as i intend.
5<=val<10 --> purple,
10<=val<15 --> blue
15<=val<20 -->cyan
....etc
BUT, when the color list is much longer than here, where each specific
color corresponds to some data range, somehow, sometimes the above doesn't
work as expected.
for example, 15<=val<20 --> should be cyan. but in lists with much more
color numbers, value=15 sometimes produces blue. by trial & error, i saw
only when an epsilon is added to 15, say 15.000001, data color becomes cyan.
i reckon this has something to do with color number. when the number of
colors in ListedColormap is not an integer power of 2 (8, 16, 32, 64..etc)
the normalization in set_clim divides 0-1 into sections, which are not
exactly representable in machine float, if the color number is, say, 12,
17, 20..etc. so this small differences in color-change-limits result this
behaviour. so adding one extra dummy color can solve this, as it completes
color number to 8 (2^3 colors).
is this the case or is my guess is completely wrong ?
secondly, i also would like to know the logic behind how matplotlib
corresponds/maps values in whole range like i use above, with colors in
color list. i digged the source but no success. say 4 colors in list and
set_clim(vmin=2, vmax=4).
this yields for values:
below 2 ->color1
2-(2.5) ->color1
2.5-(3) ->color2
3-(3.5) ->color3
3.5 and above ->color4. but how ?
thanks.
-- 
Yasin
"Bismillah, her hayrın başıdır."

Showing 11 results of 11

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 によって変換されたページ (->オリジナル) /