Posted by: xSicKxBot - 02-08-2020, 10:37 AM - Forum: Python
- No Replies
Matplotlib Subplot – A Helpful Illustrated Guide
Too much stuff happening in a single plot? No problem—use multiple subplots!
This in-depth tutorial shows you everything you need to know to get started with Matplotlib’s subplot() function.
If you want, just hit “play” and watch the explainer video. I’ll then guide you through the tutorial:
To create a matplotlib subplot with any number of rows and columns, use the plt.subplot() function.
It takes 3 arguments, all of which are integers and positional only i.e. you cannot use keywords to specify them.
plt.subplot(nrows, ncols, index)
nrows – the number of rows
ncols – the number of columns
index – the Subplot you want to select (starting from 1 in the top left)
So, plt.subplot(3, 1, 1) has 3 rows, 1 column (a 3 x 1 grid) and selects Subplot with index 1.
After plt.subplot(), code your plot as normal using the plt. functions you know and love. Then, select the next subplot by increasing the index by 1 – plt.subplot(3, 1, 2) selects the second Subplot in a 3 x 1 grid. Once all Subplots have been plotted, call plt.tight_layout() to ensure no parts of the plots overlap. Finally, call plt.show() to display your plot.
# Import necessary modules and (optionally) set Seaborn style
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
import numpy as np # Generate data to plot
linear = [x for x in range(5)]
square = [x**2 for x in range(5)]
cube = [x**3 for x in range(5)] # 3x1 grid, first subplot
plt.subplot(3, 1, 1)
plt.plot(linear) # 3x1 grid, second subplot
plt.subplot(3, 1, 2)
plt.plot(square) # 3x1 grid, third subplot
plt.subplot(3, 1, 3)
plt.plot(cube) plt.tight_layout()
plt.show()
Matplotlib Subplot Example
The arguments for plt.subplot() are intuitive:
plt.subplot(nrows, ncols, index)
The first two – nrows and ncols – stand for the number of rows and number of columns respectively.
If you want a 2×2 grid, set nrows=2 and ncols=2. For a 3×1 grid, it’s nrows=3 and ncols=1.
The index is the subplot you want to select. The code you write immediately after it is drawn on that subplot. Unlike everything else in the Python universe, indexing starts from 1, not 0. It continues from left-to-right in the same way you read.
So, for a 2 x 2 grid, the indexes are
For a 3 x 1 grid, they are
The arguments for plt.subplot() are positional only. You cannot pass them as keyword arguments.
>>> plt.subplot(nrows=3, ncols=1, index=1)
AttributeError: 'AxesSubplot' object has no property 'nrows'
However, the comma between the values is optional, if each value is an integer less than 10.
Thus, the following are equivalent – they both select index 1 from a 3×1 grid.
plt.subplot(3, 1, 1)
plt.subplot(311)
I will alternate between including and excluding commas to aid your learning.
Let’s look at the default subplot layout and the general outline for your code.
plt.subplot(3, 1, 1)
<em># First subplot here</em> plt.subplot(3, 1, 2)
<em># Second subplot here</em> plt.subplot(3, 1, 3)
<em># Third subplot here</em> plt.show()
This looks ok but the x-axis labels are hard to read on the top 2 subplots.
You have a few ways to solve this problem.
First, you can manually adjust the xticks with the matplotlib xticks function – plt.xticks() – and either:
make them transparent by setting alpha=0, or
move them and decrease their font size with the position and size arguments
# Make xticks of top 2 subplots transparent
plt.subplot(3, 1, 1)
plt.xticks(alpha=0) plt.subplot(3, 1, 2)
plt.xticks(alpha=0) # Plot nothing on final subplot
plt.subplot(3, 1, 3) plt.suptitle('Transparent Xticks - plt.xticks(alpha=0)')
plt.show()
# Move and decrease size of xticks on all subplots
plt.subplot(3, 1, 1)
plt.xticks(position=(0, 0.1), size=10) plt.subplot(3, 1, 2)
plt.xticks(position=(0, 0.1), size=10) plt.subplot(3, 1, 3)
plt.xticks(position=(0, 0.1), size=10) plt.suptitle('Smaller Xticks In A Better Position')
plt.show()
Both these methods work but are fiddly. Plus, you cannot automate them which is annoying for us programmers.
You have this ticks problem whenever you create subplots. Thankfully, the matplotlib tight_layout function was created to solve this.
Matplotlib Tight_Layout
By calling plt.tight_layout(), matplotlib automatically adjusts the following parts of the plot to make sure they don’t overlap:
axis labels set with plt.xlabel() and plt.ylabel(),
tick labels set with plt.xticks() and plt.yticks(),
titles set with plt.title() and plt.suptitle()
Note that this feature is experimental. It’s not perfect but often does a really good job. Also, note that it does not work too well with legends or colorbars – you’ll see how to work with them later.
Let’s see the most basic example without any labels or titles.
Now there is plenty of space between the plots. You can adjust this with the pad keyword. It accepts a float in the range [0.0, 1.0] and is a fraction of the font size.
Now there is less space between the plots but everything is still readable. I use plt.tight_layout() in every single plot (without colobars or legends) and I recommend you do as well. It’s an easy way to make your plots look great.
It is the overall window/page that everything is drawn on. You can have multiple independent figures and Figures can contain multiple Subplots
In other words, the Figure is the blank canvas you ‘paint’ all your plots on.
If you are happy with the size of your subplots but you want the final image to be larger/smaller, change the Figure. Do this at the top of your code with the matplotlib figure function – plt.figure().
# Make Figure 3 inches wide and 6 inches long
plt.figure(figsize=(3, 6)) # Create 2x1 grid of subplots
plt.subplot(211)
plt.subplot(212)
plt.show()
Before coding any subplots, call plt.figure() and specify the Figure size with the figsize argument. It accepts a tuple of 2 numbers – (width, height) of the image in inches.
Above, I created a plot 3 inches wide and 6 inches long – plt.figure(figsize=(3, 6)).
# Make a Figure twice as long as it is wide
plt.figure(figsize=plt.figaspect(2)) # Create 2x1 grid of subplots
plt.subplot(211)
plt.subplot(212)
plt.show()
You can set a more general Figure size with the matplotlib figaspect function. It lets you set the aspect ratio (height/width) of the Figure.
Above, I created a Figure twice as long as it is wide by setting figsize=plt.figaspect(2).
Note: Remember the aspect ratio (height/width) formula by recalling that height comes first in the alphabet.
Now let’s look at putting different sized Subplots on one Figure.
Matplotlib Subplots Different Sizes
The hardest part of creating a Figure with different sized Subplots in matplotlib is figuring out what fraction each Subplot takes up.
So, you should know what you are aiming for before you start. You could sketch it on paper or draw shapes in PowerPoint. Once you’ve done this, everything else is much easier.
I’m going to create this shape
I’ve labeled the fraction each Subplot takes up as we need this for our plt.subplot() calls.
I’ll create the biggest subplot first and the others in descending order.
The right-hand side is half of the plot. It is one of two plots on a Figure with 1 row and 2 columns. To select it with plt.subplot(), you need to set index=2.
Note that in the image, the blue numbers are the index values each Subplot has.
In code, this is
plt.subplot(122)
Now, select the bottom left Subplot in a a 2×2 grid i.e. index=3
plt.subplot(223)
Lastly, select the top two Subplots on the left-hand side of a 4×2 grid i.e. index=1 and index=3.
plt.subplot(421)
plt.subplot(423)
When you put this altogether you get
# Subplots you have just figured out
plt.subplot(122)
plt.subplot(223)
plt.subplot(421)
plt.subplot(423) plt.tight_layout(pad=0.1)
plt.show()
Perfect! Breaking the Subplots down into their individual parts and knowing the shape you want makes everything easier.
Matplotlib Subplot Size Different
You may have noticed that each of the Subplots in the previous example took up 1/x fraction of space – 1/2, 1/4 and 1/8.
With the matplotlib subplot function, you can only create Subplots that are 1/x.
It is not possible to create the above plot in matplotlib using the plt.subplot() function. However, if you use the matplotlib subplots function or GridSpec, then it can be done.
Matplotlib Subplots_Adjust
If you aren’t happy with the spacing between plots that plt.tight_layout() provides, manually adjust it with plt.subplots_adjust().
It takes 6 optional, self-explanatory keyword arguments. Each accepts a float in the range [0.0, 1.0] and they are a fraction of the font size:
left, right, bottom and top is the spacing on each side of the Subplot
wspace – the width between Subplots
hspace – the height between Subplots
# Same grid as above
plt.subplot(122)
plt.subplot(223)
plt.subplot(421)
plt.subplot(423) # Set horizontal and vertical space to 0.05
plt.subplots_adjust(hspace=0.05, wspace=0.05)
plt.show()
In this example, I decreased both the height and width to just 0.05. Now there is hardly any space between the plots.
To avoid loads of similar examples, play around with the arguments yourself to get a feel for how this function works.
Matplotlib Suplot DPI
The Dots Per Inch (DPI) is a measure of printer resolution. It is the number of colored dots placed on each square inch of paper when it’s printed. The more dots you have, the higher the quality of the image. If you are going to print your plot on a large poster, it’s a good idea to use a large DPI.
The DPI for each Figure is controlled by the plt.rcParams dictionary. It contains all the runtime configuration settings. If you print plt.rcParams to the screen, you will see all the variables you can modify. We want figure.dpi.
Let’s make a simple line plot first with the default DPI (72.0) and then a much smaller value.
The Figure with a smaller DPI is smaller and has a lower resolution.
If you want to permanently change the DPI of all matplotlib Figures – or any of the runtime configuration settings – find the matplotlibrc file on your system and modify it.
You can find it by entering
import matplotlib as mpl
mpl.matplotlib_fname()
Once you have found it, there are notes inside telling you what everything does.
Matplotlib Subplot Spacing
The function plt.tight_layout() solves most of your spacing issues. If that is not enough, call it with the optional pad and pass a float in the range [0.0, 1.0]. If that still is not enough, use the plt.subplots_adjust() function.
I’ve explained both of these functions in detail further up the article.
Matplotlib Subplot Colorbar
Adding a colorbar to each plot is the same as adding a title – code it underneath the plt.subplot() call you are currently working on. Let’s plot a 1×2 grid where each Subplot is a heatmap of randomly generated numbers.
For more info on the Python random module, check out my article. I use the Numpy random module below but the same ideas apply.
# Set seed so you can reproduce results
np.random.seed(1) # Create a 10x10 array of random floats in the range [0.0, 1.0]
data1 = np.random.random((10, 10))
data2 = np.random.random((10, 10)) # Make figure twice as wide as it is long plt.figure(figsize=plt.figaspect(1/2)) # First subplot
plt.subplot(121)
pcm1 = plt.pcolormesh(data1, cmap='Blues')
plt.colorbar(pcm1) # Second subplot
plt.subplot(122)
pcm2 = plt.pcolormesh(data2, cmap='Greens')
plt.colorbar(pcm2) plt.tight_layout()
plt.show()
First, I created some (10, 10) arrays containing random numbers between 0 and 1 using the np.random.random() function. Then I plotted them as heatmaps using plt.pcolormesh(). I stored the result and passed it to plt.colorbar(), then finished the plot.
As this is an article on Subplots, I won’t discuss the matplotlib pcolormesh function in detail.
Since these plots are different samples of the same data, you can plot them with the same color and just draw one colorbar.
To draw this plot, use the same code as above and set the same colormap in both matplotlib pcolormesh calls – cmap='Blues'. Then draw the colorbar on the second subplot.
This doesn’t look as good as the above Figure since the colorbar takes up space from the second Subplot. Unfortunately, you cannot change this behavior – the colorbar takes up space from the Subplot it is drawn next to.
A Grid is the number of rows and columns you specify when calling plt.subplot(). Each section of the Grid is called a cell. You can create any sized grid you want. But plt.subplot() only creates Subplots that span one cell. To create Subplots that span multiple cells, use the GridSpec class, the plt.subplots() function or the subplot2grid method.
I discuss these in detail in my article on matplotlib subplots.
Summary
Now you know everything there is to know about the subplot function in matplotlib.
You can create grids of any size you want and draw subplots of any size – as long as it takes up 1/xth of the plot. If you want a larger or smaller Figure you can change it with the plt.figure() function. Plus you can control the DPI, spacing and set the title.
Armed with this knowlege, you can now make impressive plots of unlimited complexity.
But you have also discovered some of the limits of the subplot function. And you may feel that it is a bit clunky to type plt.subplot() whenever you want to draw a new one.
To learn how to create more detailed plots with less lines of code, read my article on the plt.subplots() (with an ‘s’) function.
Where To Go From Here?
Do you wish you could be a programmer full-time but don’t know how to start?
Check out my pure value-packed webinar where I teach you to become a Python freelancer in 60 days or your money back!
It doesn’t matter if you’re a Python novice or Python pro. If you are not making six figures/year with Python right now, you will learn something from this webinar.
These are proven, no-BS methods that get you results fast.
This webinar won’t be online forever. Click the link below before the seats fill up and learn how to become a Python freelancer, guaranteed. https://tinyurl.com/become-a-python-freelancer
WordPress conversion from plt.subplot.ipynb by nb2wp v0.3.1
I’ve been expressing my creative muscles this week through variousnewsstories, although I worry that perhaps I come off as being slightly unhinged? The bright-side is you won’t have to put up with me for much longer. The new team will be in place by the start of March, and then the ‘proper’ re-launch takes place at the end of March and they’ll be taking care of you.
Before then however, I’m probably going to have some fun.
Meanwhile, thousands of miles away…
New App Releases
There’s only one game of note that people are talking about, and that’s PictoQuest. A Nintendo Switch game that’s been ported over to mobile (we might start seeing this more often as games go to Switch first, mobile later) and it’s basically just picross with some window dressing. Reports suggest that It’s not quite as good as more involved RPG/Puzzle hybrids like Puzzle Quest, but if you’re a fan of this particular style of puzzle it does the job.
App Updates & News
Scythe is coming to iOS!
After some much needed TLC, I think it’s fair to say Asmodee Digital’s adaptation of Scythe is one of their better digital board game properties, and probably generally the best way to play Scythe. It’s been out of Early Access since September 2018, and there hasn’t been a peep from either the developer nor Asmodee themselves… until now!
Thanks to the eagle eyed patrons of Stately Play, we’ve spotted that AD are taking sign-ups for an iOS beta for Scythe Digital Edition. Yay!
They’ve also got a new patch for Terraforming Mars in beta as well, which is set to rework multiplayer.
GWENT Update 5.1
GWENT has just received another sizeable update on iOS (and PC), with a look at re-balancing a bunch of existing cards. The focus is on Skellige and Syndicate factions but there’s been a wide range of changes, including:
Less rank loss at the start of a new season.
The mobile version has new tool-tips for cards on the board
Lots and lots of card changes and tweaking.
I’ve recently started playing The Witcher 3 on PS4 and jumped into the ‘OG’ version of the game to see what the fuss was about. I actually really enjoyed it, so I hope this comes to Android soon so I can play the fully fleshed out version.
Teamfight Tactics Closed Beta Tests
A closed beta for the mobile version of Teamfight Tactics is due to start today in select countries… and we have no idea what countries those might be. Despite an extensive blog post covering the news and some other interesting details, they don’t actually say what countries they’ll be running the test in.
The full release is still scheduled for March, however, and the rest of the post goes into detail as to what the key differences are. It’s also worth highlighting that this will be a phone-only game at launch – tablet support is coming later. Minimum requirements on iOS are expected to be iPhones 6S or later, and OS5+ with 2GB RAM on Android.
App Sales
Another slow week for sales of note, but we spotted that Tsuro: The Game of the Path is down to $3.99 (from $3.99) on both iOS and Android. It’s not the lowest price it’s ever been, but last time it was lower was April 2018 so it doesn’t go in for the cheaper prices often.
Seen anything else you liked? Played any of the above? Let us know in the comments!
Best MacBook Pro blowout deals: save up to $3,300 instantly
Exclusive
By Christine McKee Friday, February 07, 2020, 12:05 pm PT (03:05 pm ET)
Apple Authorized Resellers are clearing out MacBook Pro inventory ahead of Valentine’s Day, and AppleInsider readers have first dibs on up to $3,300 in exclusive savings on premium 13-inch and 15-inch configurations.
Exclusive coupon savings
Apple Authorized Resellers are kicking off the weekend on a high note with the lowest prices on record for a number of high-end Mid 2018 13-inch and 15-inch MacBook Pro configurations. Featuring upgrades like extra RAM, additional storage, and even beefier graphics for the 15-inch models, the machines highlighted below offer a wealth of features for a fraction of the original retail cost.
At Adorama, the discounts displayed are in the form of instant rebates stacked with coupon code APINSIDER when used with the pricing links below or the links in our 2018 13-inch MacBook Pro and 2018 15-inch MacBook Pro Price Guides. The systems are also eligible for no interest financing when paid in full within 12 months using the Adorama Credit Card, and AppleCare is available as an optional add-on for the discounted rate of $349 ($30 off retail). Only need coverage for a year? Check out the VIP360 program that offers 1-year drops and spills protection for new products you buy at Adorama for $49.99 per year.
For even more Mac deals, including coupon savings on the new 16-inch MacBook Pro, be sure to visit the AppleInsiderApple Price Guide.
Make sure you’re using a browser with cookies enabled that isn’t in private mode.
Click on the price link to the desired configuration from this article or the Adorama price links in our Price Guides. You MUST click through our links in the same shopping session that you use our coupon. If you try to save a link for late, the coupon WON’T WORK. Once you click through a price link, you’ll see a price that’s higher than advertised (we’ll fix that in a moment).
Add the MacBook Pro to your cart anyway, and when you’re done shopping, begin the checkout process.
Look for a link that says “Do you have a gift card or promo code?” next to the gift icon. Click that to bring up a coupon code field.
Enter the coupon code APINSIDER in the field and click apply. The discount should appear under “Promo Savings” above the order total.
That’s it. As always, if you have any issues, you can reach out to us at [email protected] and we’ll try and help.
Additional Apple deals
AppleInsider and Apple authorized resellers are also running additional exclusive savings on Apple hardware that will not only deliver the lowest prices on many of the items, but also throw in bonus discounts on AppleCare, software and more. These offers are as follows:
Connect Fedora to your Android phone with GSConnect
Both Apple and Microsoft offer varying levels of integration of their desktop offerings with your mobile devices. Fedora offers a similar if not greater degree of integration with GSConnect. It lets you pair your Android phone with your Fedora desktop and opens up a lot of possibilities. Keep reading to discover more about what it is and how it works.
What is GSConnect?
GSConnect is an implementation of the KDE Connect project tailored for the GNOME desktop. KDE Connect makes it possible for your devices to communicate with each other. However, installing it on Fedora’s default GNOME desktop requires pulling in a large number of KDE dependencies.
GSConnect is a complete implementation of KDE Connect, but in the form of a GNOME shell extension. Once installed, GSConnect lets you do the following and a lot more:
Receive phone notifications on your desktop and reply to messages
Use your phone as a remote control for your desktop
Share files and links between devices
Check your phone’s battery level from the desktop
Ring your phone to help find it
Setting up the GSConnect extension
Setting up GSConnect requires installing two components: the GSConnect extension on your desktop and the KDE Connect app on your Android device.
First, install the GSConnect extension from the GNOME Shell extensions website: GSConnect. (Fedora Magazine has a handy article on How to install a GNOME Shell extension to help you with this step.)
The KDE Connect app is available on Google’s Play Store. It’s also available on the FOSS Android apps repository, F-Droid.
Once you have installed both these components, you can pair your two devices. Installing the extension makes it show up in your system menu as Mobile Devices. Clicking on it displays a drop down menu, from which you can access Mobile Settings.
Here’s where you can view your paired devices and manage the features offered by GSConnect. Once you are on this screen, launch the app on your Android device.
You can initiate pairing from either device, but here you’ll be connecting to your desktop from the Android device. Simply hit refresh on the app, and as long as both devices are on the same wireless network, your desktop shows up in your Android device. You can now send a pair request to the desktop. Accept the pair request on your desktop to complete the pairing.
Using GSConnect
Once paired, you’ll need to grant permissions on your Android device to make use of the many features available on GSConnect. Click on the paired device in the list of devices to see all available functions and enable or disable them according to your preferences.
Remember that you’ll also need to grant corresponding permissions in the Android app to be able to use these functions. Depending upon the features you’ve enabled and the permissions you’ve granted, you can now access your mobile contacts on your desktop, get notified of messages and reply to them, and even sync the desktop and Android device clipboards.
Integration with Files and your web browsers
GSConnect allows you to directly send files to your Android device from your desktop file explorer’s context menu.
On Fedora’s default GNOME desktop, you will need to install the nautilus-python package in order to make your paired devices show up in the context menu. Installing this is as straightforward as running the following command from your preferred terminal:
$ sudo dnf install nautilus-python
Once done, the Send to Mobile Device entry appears in the context menu of the Files app.
Similarly, install the corresponding WebExtension for your browser, be it Firefox or Chrome, to send links to your Android device. You have the option to send the link to launch directly in your browser or to deliver it as SMS.
Running Commands
GSConnect lets you define commands which you can then run on your desktop, from your remote device. This allows you to do things such as take a screenshot of your desktop, or lock and unlock your desktop from your Android device, remotely.
To make use of this feature, you can use standard shell commands and the CLI exposed by GSConnect. Documentation on this is provided in the project’s GitHub repository: CLI Scripting.
The KDE UserBase Wiki has a list of example commands. These examples cover controlling the brightness and volume on your desktop, locking the mouse and keyboard, and even changing the desktop theme. Some of the commands are specific for KDE Plasma, and modifications are necessary to make it run on the GNOME desktop.
Explore and have fun
GSConnect makes it possible to enjoy a great degree of convenience and comfort. Dive into the preferences to see all that you can do and get creative with the commands function. Feel free to share all the possibilities this utility unlocked in your workflow in the comments below.
Posted by: xSicKxBot - 02-08-2020, 02:16 AM - Forum: Lounge
- No Replies
This Week At Bungie – 2/6/2020
This Week at Bungie, we’re calling in reservations.
It’s been a wild week in Destiny 2. Inotam, Oblivion’s Triune, made their grand entrance into the Sundial. Guardians descended upon Mercury, weapons in hand, eager to protect the timeline from certain annihilation. While you’ve prevented the Psions from changing history, this isn’t the last trial you’ll face – not by a longshot.
The first three Empyrean Foundation goals have been met with haste. One billion Fractaline isn’t enough for the Foundation, and the next goal is currently in reach. Your next stop: 2.2 Billion Fractaline donations.
We knew you’d rise to the challenge, but this? This is absolutely insane. Keep that Fractaline coming. We’re seeing quite a few Guardians investing in their Fractaline futures, but many hitting the donation button to quickly earn some sweet Timelost weapons.
The final triumph for the Savior Seal will be completed once the community completes the seventh stage of this event. We’re excited to see a new title in the wild. Players will also unlock the ability to pre-order the Savior Bungie Reward pin once they have completed all Triumphs for the Seal.
Now, let’s look at the calendar. We have some beats to cover that are coming up quick, with a new Season on the way in just over a month! Below, you’ll find details on Crimson Days, Destiny 2 Hotfix 2.7.1.1, and a patch note preview for Season 10.
Love is almost in the air
Have you been feeling a bit lonely lately? Lacking a partner by your side in the heat of battle? Crimson Days is on approach, bringing the perfect opportunity for you to form an unbreakable Crimson Bond with a fellow Guardian.
Crimson Doubles returns to the Crucible during the event, bringing explosive 2v2 combat to the fold. Stay close to your partner: you’ll each have heightened ability regen as long as you retain your Crimson Bond. If you stray too far away from each other, opponents will be able to see your every move. If you’d rather take your partner out for a stroll in one of Destiny 2’s PvE activities, Shaxx will offer bounties for you to complete in a two-person fireteam.
As you complete Crimson Doubles matches and bounties, you and your partner will be showered in delicious candy hearts. To sweeten the deal, Daily and Weekly bounties will offer double XP. Bright Dust will also be rewarded when completing your weekly bounties.
As you begin to stockpile Confectionary Hearts, they can be exchanged with Lord Shaxx for Crimson Days themed rewards, including two new Exotic Sparrows. Ride in tandem to show the strength of your Crimson Bond!
If this is your first Crimson Days event, or you didn’t earn enough hearts in years past, rewards from previous events will also be available to earn alongside the new Sparrows.
Additionally, spare Confectionary Hearts may be exchanged for Warmhearted Gift packages containing Glimmer, with a slight chance for legendary loot. Once you’ve collected both Sparrows and claimed the associated Triumph, an exclusive emblem will become available through Bungie Rewards.
Eververse will feature many items from previous events for Bright Dust, including two new items exclusive to Crimson Days. One new item will be available for Silver only, the Heartfelt Union Multiplayer Emote.
Here’s the emote in action:
Crimson Days will be available from February 11 to February 18, 2020.
Cutting Edge
We’re a little over a month out from the next Season of Destiny 2 and this seems like a good time to start talking about Sandbox. Over the next few weeks, we’ll be covering upcoming changes to weapons and abilities. Some changes will be PvP-centric, while others will bear more of a PvE focus.
Our first subject: Swords.
Some are sharp. Some are blunt. One lets you bend space and time to teleport through enemies. Another has projectiles that can take down foes at range. Since the launch of Destiny 2, we’ve been seeing feedback on general functionality and the team has been kicking around ideas on how to make things a bit more enticing.
After some brainstorming and development time, Swords are receiving a sort of tableflip when it comes to light attacks, heavy attacks, and guarding. While you’ll still rip and tear through opponents, as you would expect from a Sword, most of what you know needs to be unlearned. The blades have been rebalanced, and a new energy meter is making its way to swords. Below, you’ll find a full rundown from our development team.
Dev Team: Swords are getting a little more love this Season. While Swords have been a staple of Destiny ever since their introduction in The Taken King, we felt they were due for an update both to freshen them up, but also to allow us more room to work with them in later releases.
Sword Energy
Swords now have their own reserve of energy that recharges naturally on its own, and is not to be confused with ammo capacity. This energy will overtake your melee slot while you’re wielding a sword and is spent on various actions.
Guarding
Guarding now uses sword energy instead of consuming ammo. Different guards have different consumption rates, damage resistance and behaviors, so be sure to experiment and find a guard type you like. You’ll still need at least one ammo to begin guarding, though.
Back during Season of the Drifter, the Stronghold exotic for Titans was introduced, allowing them to guard with relative impunity and opening up a more interesting opportunities for swords to shine in a variety of content which caused us to take another look at the guard function itself. Although the guard function has always existed, it was never really considered worth the cost. With this change, we hope that players will use their guard intelligently to protect themselves instead of it being an almost unused button. Rest easy, Stronghold has also been modified to still allow Titans a unique guarding experience.
Light Attacks
Grounded light attacks for all Swords will now loop for an infinite combo, and all Swords can cleave.
While the basic three hit combo is quite a staple of melee weapons in many games – In a shooter this leaves the player extremely open to enemies. By letting the light attacks loop, we also push them and the heavy attacks apart further. Cleaving on light attacks was previously only on the Aggressive Swords, but we opted to add it to the rest of them for more hack ‘n slash.
Heavy Attacks
Heavy attacks now consume Sword energy. While you are always able to perform a heavy attack, the attack is stronger when you have full energy, and weaker when you don’t.
A lot of swordplay in many situations simply boiled down to endlessly mashing the heavy attack button instead of mixing up attacks which wasn’t quite the most interesting experience. Do note that aerial heavy attacks as a general rule do not consume Sword energy, but that can vary based on the Sword.
Shield Bypass
A portion of most Sword attacks can partially bypass elemental shields.
We added this to give Swords a little bit of a personality difference from shotguns who share a very similar role in combat as powerful CQC weapons.
In general, Swords have also had some of the damage amounts for different attacks changed, and the various Sword perks have been adjusted. So you’ll want to experiment a bit after the changes hit. We do hope you’ll enjoy the changes.
Blinded by the Light
Hotfix after Hotfix, Destiny Player Support is here for you. Timetables, known issues, and frequently asked questions are handled with care. They approach each conversation with white gloves and gold standards.
This is their report.
CONTRIBUTING TO EMPYREAN RESTORATION
On Tuesday, the Empyrean Restoration went live. Player Support noticed that some players were confused on how to participate and contribute their Polarized Fractaline. To do so, players must complete the Bright Light quest from Saint-14. To unlock this quest, players must complete the following prerequisites:
Complete the following quests from Osiris: A Matter of Time.
Then, complete Saint-14’s quests: Tribute to the Colonies, Cornerstone, and A Guardian’s Duty.
CRIMSON DAYS AHEAD
Next week, Crimson Days returns to the Crucible. Our Help article will update on February 11, 2020, to bring you updated information about the event, including that it will end at the weekly reset on February 18.
Here are a few known issues about the event:
Players will be unable to accept Lord Shaxx’s “Fire of the Crimson Days” emblem if they already have this emblem in their inventory. Deleting the emblem will allow them to accept the new one and complete the “Welcome to the Crimson Days” Milestone.
Players who are removed from a match and rejoin will not be able to respawn until the current round ends. These player will see “Waiting for Ally to Revive” for the remaining duration of the round.
Crimson Days bounties do not advance the Crucible Bounty Vendor Challenge.
HOTFIX 2.7.1.1 AND RESOLVED ISSUES
Next Tuesday, February 11, we will release Destiny 2 Hotfix 2.7.1.1. This update will resolve some issues currently affecting players. Here is another preview of some of the issues that will be resolved:
The Efrideet’s Gift Triumph will retroactivity unlock for players who turn in 50 Iron Banner packages in Season of the Dawn.
The Get Closer pursuit will no longer have its progress reset when resetting Infamy. This is retroactive and will auto-complete for any player who has already been above Mythic rank this season.
A Season 9 Iron Banner Triumph has been added that tracks purchased packages from Lord Saladin. This is also retroactive.
Additionally, here’s the timeline for the Destiny 2 Hotfix 2.7.1.1 release on Tuesday:
8:00 AM PST (1600 UTC): Destiny 2 maintenance will begin. Players may experience sign-on issues during maintenance.
8:45 AM (1645 UTC): Players will be removed from activities and will be unable to log in until 9 AM.
9:00 AM (1700 UTC): Destiny 2 Hotfix 2.7.1.1 will be released and players will be able to log in.
10:00 AM (1900 UTC): Destiny 2 maintenance will end.
CURRENT KNOWN ISSUES
While we continue investigating various known issues, here is a list of the latest issues that were reported to us in our #Help Forum:
Players are continuing to report increased Tower load times after Update 2.7.1.
The Playin’ the Odds emblem doesn’t drop and cannot be reacquired from Collections. While we investigate, the only way to receive this emblem right now is to reset your Infamy rank three times in one Season.
In the Bright Future quest, Orbs of Light that are collected sometimes are not accurately reflected in the quest’s progress. Some players have reported that deleting or claiming a bounty may help with progression issues.
For a full list of emergent issues in Destiny 2, players can review our Known Issues article. Players who observe other issues should report them to our #Help forum.
Variety
Over the years, there have been quite a few “metas” in Destiny 2. Different Legendary weapons will take the spotlight from time to time, sometimes usurped by a truly Exotic underdog. This week, our winner brings a montage using every exotic in the game.
Movie of the Week: SoaR-ing
Honorable Mention: Guardian Bowl LIV
Winners will find their new MotW-themed emblem in their collections within the next year or so. If you have some sweet clips or a fun montage, make sure to submit it to the Community Creations page. For carnage, or a chance for a sweet emblem, apply within.
We’re almost to the weekend, but we’ll be scouting the Destiny Fashion scene for combinations worthy of an emblem. In case you missed it, we kicked off another Fashion Week on Tuesday. Only requirements: the Star Light, Star Bright emblem from the Guardians for Australia foundation effort, and a good eye for fashion.
Reply to this tweet with a picture of your Guardian and the emblem equipped. If we retweet you, the Levante’s Prize emblem will be granted to you within a week. Here’s a quick example of a recent winner:
I can’t wait to see what combinations you cook up. Have a great weekend, and we’ll see you next time.
Posted by: xSicKxBot - 02-08-2020, 02:16 AM - Forum: Minecraft
- No Replies
JAVA Edition: Snapshot 20W06A
Things are heating up as we dive into the first Snapshot for the Nether Update. Everythings exciting and Diamond is no longer king! Be sure to share your thoughts and findings in the comments below!
Added new Nether blocks!
Knockback resistance is now a scale instead of a probability
Added Crimson Forest biome to the Nether
Added Hoglins – they don’t do much yet, but they have cute flappy ears!
Patrols no longer spawn when the player is close to any village
Added Netherite!
Added Soulsand Valley biome to the Nether
Walls do not have gaps anymore when stacked vertically
Added Warped Forest biome to the Nether
Many new block types have been added!
Two new wood-like materials – Crimson Stems and Warped Stems
Basalt blocks – you can find them as pillars but they can be placed in any direction
New ground surface blocks: Crimson Nylium and Warped Nylium
New vegetation: Nether Sprouts, Crimson Roots and Warped Roots
Two types of Fungi: Crimson and Warped – try using bone meal to grow them!
Warped Wart blocks
Weeping Vines that grow from the bottom of a block downwards!
A new natural light source: Shroomlights
Added Soul Soil! Whenever fire burns on Soul Soil, it burns with a blue flame!
Soul Soil can be used to craft Soul Torches – and those can be crafted into Soul Lanterns!
Using bone meal on Netherrack can now spread Nylium
Crimson Forests can now be found in the Nether!
Crimson nylium carpets the cave floor with all kinds of strange new vegetation
Huge Crimson Fungi make up the “trees” of this forest, with Shroomlights lighting up the forest floor
Weeping Vines grow from the cave ceilings and fungi
Hoglins wander these forests
Crimson spores swirl through the air
A new high-level material found in the Nether. Use it to upgrade your diamond gear!
How to Make Netherite
Mine Ancient Debris in the lower depths of the Nether. At own risk. No insurance coverage for that
Refine it into Netherite Scrap in a Furnace (although that’s kind of slow so you might want a Blast Furnace)
Combine 4 Nether Scrap with 4 Gold Ingots in a crafting table to make a Netherite Ingot
Netherite Effects
Netherite items float in lava so you don’t lose all your gear after that unplanned lava bath
Netherite items have higher enchantment value than diamond (but not as high as gold)
Netherite tools work faster and last longer than diamond
Netherite weapons do more damage than diamond
Netherite armor have higher toughness and durability than diamond
Netherite armor gives you knockback resistance, so you barely get knocked back at all when hit by arrows and such
…and it looks cool!
Soulsand Valleys can now be found in the Nether!
An open space made mostly of Soul Sand and Soul Soil
Basalt pillars span from floor to ceiling
Fossil remains of unknown creatures from the past litter the valley
Ash falls through the air
A light blue glow envelopes the valley
Beware of Skeletons here!
Sounds
Ghasts sounds are now heard at a shorter range
Updated block sounds for Bone Blocks, Netherrack, Soul Sand, Netherwart, Nether Bricks and Quartz Ore
Warped Forests can now be found in the Nether!
Warped nylium carpets the cave floor with all kinds of strange new vegetation
Huge Warped Fungi make up the “trees” of this forest, with Shroomlights lighting up the forest floor
A dark blue fog covers the forest
Warped spores swirl through the air
The Warped Forests are strange, but also the least hostile place of Nether
World Generation
The old Nether biome is now called Nether Wastes
Made shipwrecks and ocean ruins a bit less common, so you get more excited when you find one!
Added a locatebiome command
LOCATEBIOME
New command that locates a specified biome. Useful in creative mode when you’re looking for a specific biome and don’t want to fly around randomly searching for it.
Syntax:locatebiome <biome> Parameters:
biome – The id of the biome to find
Particles
New particle types: ash, crimson_spore, soul_fire_flame and warped_spore
Rendering
Nailed Entity shadows to the ground.
MC-17431 – Shift-clicking stacked items with a data tag into the enchanting table GUI removes data tags from the moved item
MC-45619 – Water, Signs, Vines, Torches etc. in the same block as item frame break item frame’s redstone signal
MC-52178 – Cape doesn’t move down while sneaking / Cape detaches from body while sneaking
MC-59363 – Items in item frames are deleted if both mouse buttons are used simultaneously
MC-82235 – Baby pigs turn into adult zombie pigmen when struck by lightning
MC-92889 – Mending doesn’t always consume experience if the player wears items with mending that are already fully repaired
MC-93198 – Throwing potions / throwable projectiles causes both hands to bob up and down
MC-93631 – Pistons pop off blocks attached to their back when retracting
MC-96436 – Eggs/snowballs/xp-bottles break instantly when thrown while riding a horse
MC-97958 – Small slime has no jump or squish sound
MC-103655 – Cats don’t stand up when using right click on them while they’re sitting on chests or beds
MC-109370 – Bottom face of column blocks are rotated 180 degrees
– Neutral items held by Lone Druid’s Spirit Bear now show as held by Lone Duid in the neutral items tab. – Neutral items that have been consumed now show as “Consumed” in the neutral items tab. – Neutral items that have been dropped on the ground outside the fountain, or are otherwise unaccounted for, are shown as “Unknown” in the neutral items tab. – When you open the shop, if you had the neutral items tab open last, open the basic tab instead. – The “Show Popular Items” button (star icon) in the shop is now a saved preference, and will not default to enabled when you start a new match. – Toggling the “lock combining” option on items carried by the courier will no longer cause the courier to return to base.
The Outer Worlds Switch Release Gets Delayed Due To The Coronavirus Outbreak
After already failing to release alongside other versions of the game in October last year, The Outer Worlds for Switch has now been delayed due to the coronavirus outbreak.
Private Division, the publisher who is handling the release, explained on Twitter how Virtuos – the talented team working on the game’s Nintendo port – needed more time to “finish” development. All of the team are safe and sound, but during this period certain Virtuos’ offices have been closed.
On a positive note, as you’ve probably read above, the Switch version will now be receiving a physical release on cartridge. This follows on from an announcement that the game would be launching before the end of March, and that it would only include a digital download code.
Virtuos isn’t the only video game company that’s been impacted by the coronavirus so far. At the end of last month we heard how Nintendo Switch production had been affected, and just yesterday we found out shipments of the new Animal Crossing: New Horizons Switch would be pushed back.
When we hear about the new launch date for this upcoming release, we’ll be sure to let you know.
Posted by: xSicKxBot - 02-08-2020, 02:15 AM - Forum: Lounge
- No Replies
Don’t Miss: Talking burnout, making art with Drinkbox’s Gabby DaRienzo
Gabby DaRienzo is sr. artist at Guacamelee developer Drinkbox Studios, was art director on the Independent Games Festival finalist A Mortician’s Tale, and worked on games including Super Crush KO, Parkitect, and Celeste. On the latest episode of the GDC Podcast, this fabulous goth-adjacent Forbes 30 under 30 game developer talked about art, creativity, burnout, and of course, death.
DaRienzo joined Gamasutra’s Kris Graft and a mysterious temporary co-host known only as “Alex” to educate us on all things art, the life of a (former) freelancer, and if you listen closely, you can hear her cats Bastion and Meredith aggressively agreeing with everything she says. Here are a few highlights.
“I think creative work–any work in general, there’s only so much you can do before you get burnt out–but creative work, whether it’s art or writing or even thinking of concepts for games–is especially tiring. [You] have to context-switch constantly, and I think that burnt me out. The team I was working with [no one] was pushing me to do this. This was just entirely self-imposed.
“…In hindsight it was very clear. I was getting frustrated and just was making a lot of really bad decisions. A lot of it was I felt the pressure to have to get it right, that I didn’t have time to concept and think of ideas, that I just had to get it right immediately. And we know that’s not the way anything works. Games especially are a very iterative process. They change so much, they evolve so much over the development. And setting up this expectation to get it right the first time–not realistic.
“And I was pushing myself to do it not just for one game, but for two games [at once], and that really messed me up because I was like, ‘If I don’t get this right if this art isn’t completely unique then these games won’t sell and these companies will go under!’ That sounds really so bizarre and so huge but when I talk to a lot of game developers, that’s kind of how they feel. A lot of it is that the indie space in general is very…there’s a lot going on right now and a lot of people are just kind of panicking. So that panicking on top of thinking about art, working on two things at once and just coming off of a game that was very personal just all added up to burnout.”
“…A lot of the signs are just feeling really frustrated, feeling really unmotivated–I really did not want to work on these games at all. In my headspace I was really excited about these two projects, but when came down to sitting down and doing the work, I just didn’t want to do it; I just could not push myself to do it.
“It’s also things like I got really defensive. I got very defensive about my own art. Which is something I’m embarrassed to talk about, embarrassed to admit, but is kind of important to speak about because I see a lot of other artists go through the same thing. My cofounder [at her studio Laundry Bear] would be like ‘oh I think this art would be good’ and I’d like ‘WHAT?! What’s wrong with my art?!'” (laughs)
“…If you’re a person who thinks you might be burnt out or you know someone who might be burnt out, I think that’s a huge sign, someone getting very defensive about the work that they’re doing.”
“Burnout is such a big deal. When we think about burnout and we hear the term ‘burnout,’ especially in games, we often think about triple-A: big studios forcing their employees to work…But a lot of people, especially indie devs, we need to consider that a lot of it is self-imposed. We’re putting it on ourselves without even realizing it…I know a lot of indie devs that don’t notice they’re doing it or they’re doing it because [they think] you can’t be indie unless you work 16-hour days. And that’s just not true.”
“I think the biggest thing is–a lot of people don’t think about this when they want to do freelance–but it’s like 20 percent just admin and accounting. You’re not just 100 percent of the time doing art or game design or programming or writing or whatever it is that you’re doing freelance. You’re basically running a business. So a lot of your time is spent responding to emails, doing accounting.
“But it’s also things like self-marketing, putting yourself out there on social media, going to events, making sure your portfolio is always stocked with pieces, and if you have a slow period with work, making sure you use that time to find more work or fill your portfolio with pieces that will help you get more work. It’s a lot of that kind of stuff.
“If you’re a person who’s maybe not keen on that, then freelancing might not be a thing that you’re interested in doing. But I love that stuff (laughs).”
“…A lot of it too is networking. I hate the term ‘networking.’ It feels really business-professional and seems like a contrast to what we do in games. But essentially [what I mean is] making friends; going to events, being social on the internet and just making friends. And when people are like ‘oh, we need an extra artist on a thing’ or ‘we need to hire someone to do a logo,’ they think of you.
“And that’s how I got a lot of my work when I was freelancing…You don’t have to go to events and shove business cards in peoples’ faces, necessarily (laughs), I advise against that, probably. But making friends and putting yourself out there goes a long way if that’s something you’re comfortable with doing.”